一些域由 nginx 处理,一些由 apache 处理

一些域由 nginx 处理,一些由 apache 处理

我有 2 个域名连接到我的服务器 IP。一个域名的文件位于 /var/www/firstdomain.com 文件夹中,第二个域名的文件位于 /var/www/seconddomain.com 文件夹中。

我想用 nginx 处理第一个域,用 apache 处理第二个域,不进行端口更改,它们都应该在 80 端口上运行。

我尝试将 firstdomain:80 设置为 Apache 的监听选项,将 seconddomain:80 设置为 nginx 的监听选项,但似乎这样的配置不起作用,因为它们仍然使用相同的端口。

我认为正确的方法是使用 nginx 作为主服务器,并将所有发往 seconddomain.com 的请求代理到 apache,但找不到如何执行此操作。我尝试在 8080 上运行 Apache,但不知道应在位置语句中添加什么才能使其正常工作:

location {?????} {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;

        proxy_set_header Host $host;

        proxy_pass http://127.0.0.1:8080;
  }

我也尝试过

server {
  listen 80 default;

  root /var/www/seconddomain.com;
  server_name seconddomain.com;

  location / {
      proxy_pass http://127.0.0.1:8080;
  }

}

但这也不起作用

答案1

看来我找到了解决方案。是的,你应该使用 nginx 作为代理,Apache 应该监听 8080。我遇到的问题是 Apache,它只监听外部连接,而不是来自 127.0.0.1 的连接。因此,首先尝试了解 Apache 本身是否运行良好,nginx 本身是否运行良好,然后尝试为它们提供代理。以下是工作代理的示例:

server {
  listen 80 default;

  root /var/www/seconddomain.com;
  server_name seconddomain.com;

  location / {
      proxy_pass http://127.0.0.1:8080;
}

server {
  listen 80;
  server_name firstdomain.com;
  .....
}

相关内容