2016-08-20 84 views
1

我能够在家用电脑上设置Apache Web服务器,并在端口80上运行。我的转发路径已设置好,以便我的公共域将我带到Apache HTDOC文件中。要澄清的是,我能够托管我自己的网络服务器,因此我可以托管我自己的网站。我成功地显示HTML内容。在Apache上托管我自己的节点服务器?

现在,我想添加NodeJS到这个功能,我有点困惑如何。

answer on this link,我做了确保取消对我的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上。

编辑:从this example我相信,我有包装的虚拟主机里面我的ProxyPass,像这样:

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

这是不行的,虽然我的球场内承担其我应该是在做。

回答

1

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

唯一重要的事情是不是目录,但该端口使用的是在您的节点配置

+0

难道我也有转发路径我的8000端口? –

+1

你已经做了,根据你的'httpd'以上 –

+0

我有点困惑,因为我的错误是在那里。我有一个index.html文件,只要我点击公共IP地址就会运行(例如:http://12.12.12.12.12)。现在,当我运行'node nod'时,我的'localhost:8000'显示了我的节点文件。但是当我去'http://12.12.12.12.12:8000'时,它不会出现。 –

相关问题