【发布时间】:2018-10-13 02:12:22
【问题描述】:
**我在这里看到了一个类似的问题,没有正确的答案
我希望 Apache 和 Node.js 都在端口 80 上运行,这样就无需在地址栏输入端口号。 但是当我在端口 80 而不是 3000 上侦听时,我的 Node.js 应用程序将无法运行,我想那是因为 Apache 已经在 80 上。
或者,解决方案需要实际使用 80 以外的其他端口并以某种方式隐藏它?
【问题讨论】:
**我在这里看到了一个类似的问题,没有正确的答案
我希望 Apache 和 Node.js 都在端口 80 上运行,这样就无需在地址栏输入端口号。 但是当我在端口 80 而不是 3000 上侦听时,我的 Node.js 应用程序将无法运行,我想那是因为 Apache 已经在 80 上。
或者,解决方案需要实际使用 80 以外的其他端口并以某种方式隐藏它?
【问题讨论】:
在 TCP 中,您只能运行 每个端口 1 个服务。一旦将端口分配给服务,其他任何人都无法使用它。
但是有一种方法可以在 NODE 和 APACHE 之间共享端口,代理连接使用 Apache 2 模块(mod_proxy 和 mod_proxy_http)。您可以在此处获取更多详细信息: how to put nodejs and apache in the same port 80
在对http://example.com/的请求中使用Apache的Apache配置示例 和 Node.js 对http://example.com/node/ 的请求:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example/
<Location /node>
ProxyPass http://127.0.0.1:8124/
ProxyPassReverse http://127.0.0.1:8124/
</Location>
</VirtualHost>
【讨论】: