我可以在家用计算机上设置一个运行在端口80上的Apache Web服务器。已经设置了我的转发路径,以便我的公共域将我带到我的Apache HTDOCs文件中。需要澄清的一点是,我能够托管自己的Web服务器,因此可以托管自己的网站。我能够成功显示HTML内容。
现在,我想将NodeJS添加到此功能中,而我对此却有些困惑。
按照此链接的答案,我确保取消注释文件中的以下几行httpd
:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
现在,我对httpd
文件中的该行的位置有些困惑:
ProxyPass /node http://localhost:8000/
因此,我不确定这是否允许我从外部访问我的nodejs。
另外,我想知道是否应该在我的Apache文件夹中安装NodeJS c:/Apache24
。如果是这样,我将其安装在哪个目录中?
要添加,我的测试节点文件(名为nod.js)包含以下代码。
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Apache!\n');
}).listen(8000);
我node nod
在htdocs上运行它。虽然这在localhost中有效,但它不会显示在我的外部ip上。
编辑:从此示例中,我相信我必须将ProxyPass包装在虚拟主机中,如下所示:
<VirtualHost *:80>
ProxyPass /node http://localhost:8000/ connectiontimeout=5 timeout=30 # optional timeout settings
</VirtualHost>
尽管我认为它在我应该做的事的范围之内,但这是行不通的。
在哪个目录上运行节点服务器都没有关系。
Apache通过HTTP将请求发送到节点,从技术上讲,它们可以位于两台不同的机器上(您可以使用localhost,但可以使用那里的任何其他IP地址)。
唯一重要的不是目录,而是节点配置中使用的端口
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句