2011-05-19 129 views
4

我只有一个VPS托管和使用nginx的Django网络应用程序。现在,我准备用Node.js启动新的应用程序,并且可以在当前的服务器上托管?我认为,Node.js正在运行自己的http服务器,它可能与nginx服务器发生冲突。我可以在一台服务器上托管node.js和Django吗?

+1

您需要确保他们正在侦听不同的端口,否则他们不应该发生冲突。 – leek 2011-05-19 06:41:40

回答

2

您可以在单个VPS上托管多个http服务器。只有当nginx和node.js都绑定到相同的端口时,冲突才会发生。例如,如果您的nginx Web服务器正在侦听端口80,那么您的node.js http服务器应该监听80以外的端口,可以说端口8080.您还可以设置reverse proxy(以防您需要抽象内部网络并提供服务客户端在同一端口上),您将接受端口80上的传入连接,并且nginx会将特定于node.js的通信转发到端口8080.

+0

请注意,许多企业防火墙阻止除80和443(http(s))以外的任何其他邮件端口。在这种情况下使用第二个IP可能是最好的解决方案。 – Husky 2011-07-03 11:39:55

+0

不需要多个ips,可以通过代理轻松使用虚拟主机。所以你应该在8080内部运行节点,然后在nginx到节点的代理端口80上运行该虚拟主机。 – 2013-11-22 22:33:21

1

如果您有多个IP地址,您可以让nginx侦听IP1端口80和nodejs在IP2端口80上,如果情况并非如此(您只有一个IP地址),则可能需要为每个Web服务器使用不同的端口。

相关问题