Node.js和Apache在同一台服务器上,但不同的URL

公司防火墙后面只有端口80打开的服务器。 有没有办法在同一个域上分别运行Apache和Node.js,但是不同的url呢? 例如,我可以在mydamain.com上运行Apache,在mydomain.com/vcard上运行Node?

您可以。 你有3个可能的设置:

  • 节点侦听端口80,并将某些请求redirect到在端口8000侦听的Apache
  • Apache侦听端口80,并将某些请求redirect到在端口8000侦听的节点
  • 一个单独的反向代理(Nginx,HAProxy或另一个)将请求redirect到在端口8001上监听的Apache或在端口8002上监听的节点。

鉴于Apache是​​您的企业服务器,第二种方法是最安全的。 阅读Apache mod_proxy模块上的文档,了解如何操作。 您可以为节点设置一个单独的“文件夹”(例如,所有到http://yourcompany.com/node/blabla的请求都由节点提供服务,而所有其他请求都由Apache提供服务,或者您可以为节点提供单独的虚拟主机。