Node.js 在Apache上托管我自己的节点服务器?

Node.js 在Apache上托管我自己的节点服务器?,node.js,apache,Node.js,Apache,我能够在我的家用计算机上设置一个Apache web服务器,运行在端口80上。我的前向路径已经设置好,以便我的公共域将我带到我的apachehtdocs文件。我要澄清的是,我能够托管自己的web服务器,所以我可以托管自己的网站。我能够成功地显示HTML内容 现在,我想将NodeJS添加到这个特性中,我对如何添加感到有些困惑 接下来,我确保取消注释我的httpd文件中的以下行: LoadModule proxy_module modules/mod_proxy.so LoadModule prox

我能够在我的家用计算机上设置一个Apache web服务器,运行在端口80上。我的前向路径已经设置好,以便我的公共域将我带到我的apachehtdocs文件。我要澄清的是,我能够托管自己的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/
因此,我不确定这是否允许我从外部访问我的nodej

另外,我想知道我是否应该在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);
我通过htdocs上的
节点nod
运行此操作。虽然这在localhost中有效,但它不会显示在我的外部ip上

编辑:从现在开始,我相信我必须将我的ProxyPass包装到虚拟主机中,类似这样:

<VirtualHost *:80>   
     ProxyPass /node http://localhost:8000/ connectiontimeout=5 timeout=30  # optional timeout settings  
</VirtualHost>

代理过程/节点http://localhost:8000/ connectiontimeout=5超时=30#可选超时设置

这是行不通的,尽管我认为这在我应该做的范围之内

在哪个目录上运行节点服务器并不重要。
Apache通过HTTP将请求发送到节点,从技术上讲,它们可以在两台不同的机器上(您使用localhost,但它可以是那里的任何其他IP地址)


唯一重要的不是目录,而是您在节点配置中使用的端口

我还必须转发路径我的端口8000吗?我有点困惑,我的错误在哪里。我有一个index.html文件,只要我点击我的公共IP地址(例如:)就会运行。现在,当我运行
node nod
时,我的
localhost:8000
显示了我的节点文件。但是当我去
http://12.12.12.12.12:8000
它没有出现。我想
12.12.12.12.12
是你的apache,对吗?如果是这样,则proxyPath设置为
/node
,这意味着它将请求传递到
http://12.12.12.12.12/node
localhost:8000
。尝试调用此命令,您应该可以访问节点服务器Doing
http://12.12/node
不起作用,这让我相信我不知道如何设置ProxyPass。我想我应该把这个包在virtualHost里面?类似的示例代码是什么?