我正在设置一个 Node.js 服务器,但我还希望同时在该服务器上运行 Apache。 Node 将成为主网站,并且会有指向 Apache 的子域。
我能想到的唯一方法是让不同的应用程序监听不同的端口,然后使用代理应用程序监听端口 80,然后根据使用的子域“重定向”端口。我不确定这是否是正确的方法,或者如果是正确的方法该怎么做。
研究表明,可以使用 Apache 作为此代理,但如果不需要,我会更喜欢它。如果我能以某种方式使用 node.js 来做到这一点,那就太棒了(我的首选解决方案)。如果这是不切实际/不可能的,那么我当然愿意接受其他想法。
我非常感谢有关如何执行此操作的指导。
最佳答案
您想要一个可以同时服务 Node.js 和 Apache 的解决方案,并且您希望让 Node.js 进行反向代理。但是,最好使用专为反向代理(Nginx、HAProxy)设计的程序来完成该工作。使用 Node.js 作为反向代理服务器效率很低。
Nginx 是我推荐的。简单高效。您可以让 Nginx 服务器位于最前端,接收所有请求。
以下是如何设置 Nginx 以反向代理到 Node
http://www.nginxtips.com/how-to-setup-nginx-as-proxy-for-nodejs/
以下是如何设置 Nginx 来反向代理 Apache
http://www.howtoforge.com/how-to-set-up-nginx-as-a-reverse-proxy-for-apache2-on-ubuntu-12.04
只需将两者的设置文件结合起来,就可以同时为apache和node提供服务。
关于node.js - 如何将不同的子域指向同一服务器上的不同应用程序? (使用node.js作为代理?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20580277/