我有一个不错的小型服务器,装有 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。您可以这样做,但很可能需要做更多工作。
做这些事情的方法总是千千万万种。以下是两种主要方法。