【问题标题】:Apache and Node on port 8080 端口上的 Apache 和 Node
【发布时间】:2018-10-13 02:12:22
【问题描述】:

**我在这里看到了一个类似的问题,没有正确的答案

我希望 Apache 和 Node.js 都在端口 80 上运行,这样就无需在地址栏输入端口号。 但是当我在端口 80 而不是 3000 上侦听时,我的 Node.js 应用程序将无法运行,我想那是因为 Apache 已经在 80 上。

或者,解决方案需要实际使用 80 以外的其他端口并以某种方式隐藏它?

【问题讨论】:

标签: node.js apache server


【解决方案1】:

在 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>

【讨论】:

  • 那么如何将 node.js 项目与现有网站集成,使其看起来像域的一部分,如 domain/app 而不是 domain:3000/app?跨度>
  • 您可以在另一个 IP 中使用子域。
  • 知道了,所以如果我想要一个 node.js 聊天应用程序,当我在某个托管服务上托管我的网站时,我将不得不使用不同的 ip,并将两个 ip 指向相同领域? (而不是子域,如果我希望它位于同一地址上)
  • 在我建议您的解决方案中,您应该创建一个子域 (chat.yourdomain.com) 并使用 DNS 将其指向另一个不同的 IP(不是您的主 Apache 服务器),您将在其中拥有您的节点服务器。这是一个简单的解决方案,可以解决您的问题。更高级的解决方案可能是代​​理连接。我个人更喜欢子域之一。保持简单。
  • 不需要@colxi - Apache 可以通过路径代理。
猜你喜欢
  • 1970-01-01
  • 2017-09-21
  • 2014-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-14
  • 2014-02-20
  • 1970-01-01
相关资源
最近更新 更多