我必须将sails.js放在端口80中,但是apache已经在使用它了。如何将两个(sails.js和apache)放在同一个端口80上?我需要它,因为在我的公司中除了PORT 80之外所有端口都被阻止。(这是一个带有nodejs和socket.io(websockets)的实时应用程序,另一方面是一个php应用程序)。非常感谢
答案 0 :(得分:5)
您必须在任何空闲端口(例如1337)上运行Sails,并将Apache与mod_proxy
一起使用。确保它在Apache配置中加载,然后您的虚拟主机将是这样的:
<VirtualHost *:80>
ServerName www.youserver.com
ProxyPass / http://localhost:1337/
ProxyPassReverse / http://localhost:1337/
</VirtualHost>
有关详细信息,请参阅mod_proxy
documentation。
答案 1 :(得分:3)
将nginx放在sailsjs前面,转储apache,或者让apache在不同的端口上运行。
DigitalOcean有一个很好的教程,可以使用两个nodejs应用程序进行此操作..您可以找到它here。
我还写了一篇关于它的博客文章here
我在我的服务器上执行此操作,因此我可以在同一台服务器上运行ghost blog和sailsjs。这就是我设置它的方式。
NGINX Proxies blog.gorelative.com -> localhost:2368
NGINX Proxies gorelative.com -> localhost:1337
只需调整教程以将一个域代理到localhost:1337用于sailsjs,并添加到其他主机中以正常托管它们。或者将其他主机代理到apache2,这可能是浪费资源而不理想。
AFAIK:通过更多的工作,您的主机甚至不需要在同一台服务器上。 nginx可以代理到另一台服务器,也可以执行负载均衡任务。