nginx 作为代理多个 vhost

nginx 作为代理多个 vhost

运行 Windows Server 2008 R2

nginx 在端口 8080 上 Apache 在端口 80 上

Apache 托管了指令内配置的 5 个网站。

我正在尝试将 nginx 配置为 Apache 前面的代理(测试完成后我将反转端口号)。

nginx.conf 包含此服务器,

    server {
    listen       8080;
    server_name  www.domain1.com;

    root   PATH/domain1/;
    index  index.html index.htm index.php;
    location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
           expires 365d;
        }

    ## send request back to apache1 ##
    location / {
     proxy_pass  http://127.0.0.1;
     proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
     proxy_redirect off;
     proxy_buffering off;
     proxy_set_header        Host            $host;
     proxy_set_header        X-Real-IP       $remote_addr;
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}server {
    listen       8080;
    server_name  www.domain2.com;

    root   PATH/domain2/;
    index  index.html index.htm index.php;

    ## send request back to apache1 ##
    location / {
     proxy_pass  http://127.0.0.1;
     proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
     proxy_redirect off;
     proxy_buffering off;
     proxy_set_header        Host            $host;
     proxy_set_header        X-Real-IP       $remote_addr;
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

它可以工作,但是如果我添加第二台服务器,第二台服务器将导致 404 错误,因为 nginx 仍在尝试在 site1 文件夹中定位第二个站点的内容。

在 nginx 上配置多个网站的正确方法是什么?(Windows)。

答案1

第一个猜测:更改配置后,您是否重新启动/重新加载了 nginx?

到目前为止,您的配置看起来没问题;我会access_log /path/to/domainX_access.log在每个服务器 {} - 部分中包含一个单独的指令,以便更好地调试;至少您可以从日志中知道满足哪个虚拟主机。

相关内容