运行 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
在每个服务器 {} - 部分中包含一个单独的指令,以便更好地调试;至少您可以从日志中知道满足哪个虚拟主机。