apache + nginx(仅适用于一个子域)

apache + nginx(仅适用于一个子域)

我有一个不错的小型服务器,装有 Ubuntu 12.04 LTS,Apache 由 控制plesk。现在我已经nginx为我的 Gitlab 子域安装了它。

但是现在 nginx 想要控制一切。如何配置 nginx 服务器以仅提供一个子域:git.example.com

答案1

您不能在同一个端口上运行它们。默认情况下,两者都想征服0.0.0.0:80,但这是不允许的。两个简单的选择:

  • 添加一个 IP,将 nginx 绑定在其端口 80,并将 DNS 指向该 IP。
  • 在另一个端口(例如 8080)上设置 nginx,并使用 Apache 的 ProxyPass 指令将一个虚拟主机推回 nginx:

    <VirtualHost *:80>
        ServerName git.example.com
        DocumentRoot /path/to/myapp/public
        ProxyPass / http://localhost:8080/
        ProxyPassReverse / http://localhost:8080/
    </VirtualHost>
    

    这其实很常见 - 只是反过来。大多数人将 nginx 放在原始端口 80 上,让它处理原始文件 IO,如果需要 mod_php 之类的东西,则代理回 Apache。您可以这样做,但很可能需要做更多工作。

做这些事情的方法总是千千万万种。以下是两种主要方法。

相关内容