如何在专用服务器上configuration我的node.js应用程序以使其联机?

我在我的服务器上安装了node.js(这是一个虚拟的Windows服务器)。 我也有域名。 我想在端口8001上运行我的node.js应用程序,以便当我打开时,说http://example.com:8001/它将打开我的应用程序。

其实,我也有一个PHP站点在Apache服务器端口80(XAMPP)上运行。 当我打开http://example.com时,它工作的很好。

谢谢

在Apache中,创build一个新的虚拟主机。 你必须通过apache代理所有的请求到你的节点应用程序,因为apache正在监听端口80。

<VirtualHost *:80> ServerName example.com ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass http://localhost:8001/ ProxyPassReverse http://localhost:8001/ </Location> </VirtualHost> 

如果您不在基于名称的虚拟主机环境中,则可以启动Node.js服务器,并从定义的端口向全世界提供。 但是,如果服务器IP地址使用不同的域名运行许多服务,并且希望Node.js服务器仅从http://example.com:8001回复,则可以使用例如节点服务器上&#x7684;vhost模块来侦听特定域只要:

 var express = require('express'), host = require('vhost'); var app = express(); app.get('/', function(req, res) { res.send("Hello from vhost"); }); var main = express(); main.use(vhost('example.com', app)); if (!module.parent) { main.listen(8001); } 

你也可以通过像Apache或者nginx这样的web服务器来代理请求,但是要让服务端口响应8001端口,除了你已经使用的80端口之外,还需要把web服务端口绑定到端口8001上,然后运行你的Node.js一些其他端口上的服务器。

通常,人们更喜欢使用标准的HTTP端口,并使用Web服务器将代理stream量反向运行到在非特权端口上运行的Node.js服务器。 由于您的域名上已经有了PHP应用程序,您可以按照@SamT的build议从例如http://mynodeapp.example.com运行Node.js应用程&#x5E8F;