【问题标题】:Can I serve both PHP and Node apps from the same server but with different internet domains?我可以从同一台服务器同时使用不同的 Internet 域同时提供 PHP 和 Node 应用程序吗?
【发布时间】:2014-06-09 13:20:49
【问题描述】:

我拥有一个带有单一 IP 地址的 Debian 服务器,用于我所有的个人项目。如果可能的话,我想要做的是从同一台服务器为我的 Wordpress 和我的 Node.js 应用程序提供服务,为每个应用程序使用不同的互联网域

例如

  • www.myblog.org:80 应该服务 wordpress/index.php
  • my_app.com:80 应该在 localhost:3000 处提供节点实例
  • my_other_node_app.com:80 应该在 localhost:3001 处提供节点实例 等等……

这件事有可能吗?我不介意停止使用apache,如果这是需要的话

【问题讨论】:

标签: php node.js web-deployment


【解决方案1】:

只有一个软件可以监听给定网络接口的给定端口。

例如,如果您有两个具有不同 IP 地址的以太网适配器,那么您可以将 Node 服务器配置为在其中一个上侦听端口 80,并将您的 Apache 服务器配置为在另一个上侦听端口 80,然后设置 DNS 以将不同的域指向不同的 IP 地址。

如果您只有一个 IP 地址,那么您将不得不在不同的端口上运行服务器。

您可以在端口 80 上运行 Apache,然后使用它来向节点发出 proxy 请求。

【讨论】:

    【解决方案2】:

    您可以使用反向代理服务器(如 nginx)在多个域上提供服务。

    在这里查看这个问题: Nginx Different Domains on Same IP

    但基本思想是一台服务器实际上在端口 80 上进行侦听,它处理将请求发送到您的机器上的正确应用服务器(php、node 等)在内部提供服务(localhost:8000)。

    这在技术上并不是很难做到,但是要习惯于配置像 nginx 这样的新软件可能会有点挑战。不过绝对绝对可行!

    【讨论】:

      【解决方案3】:

      这绝对可以通过使用网络服务器或代理来实现。这里最常用的工具是 Nginx,因为它既是网络服务器又是保留代理。然后,您可以让 Nginx 监听端口 80,并将一个域指向 PHP 文档根目录,将另一个域直接指向将在端口 8000 上运行的 Node 网络服务器。

      另一种选择是使用 HAProxy 和一个单独的 PHP 网络服务器。 HAProxy 非常快,就像 Nginx 一样。如果您决定运行负载均衡器,那么代理 websockets 可能会更底层一些。目前这并不重要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多