我有一个带有 nginx 的前端服务器,它提供静态内容,并通过 proxy_pass 转发其余内容。
我的后端服务器有问题,随机返回 403 错误,这是在另一个问题。
为了立即解决问题,我只希望当 apache 返回 200 时才通过,我现在有:
/etc/nginx/conf.d/upstreams
upstream balanced {
server 10.15.1.10:80;
server 10.15.1.11:80;
server 10.15.1.12:80;
}
在虚拟环境中:
server {
access_log /var/log/nginx/myweb.access.log main buffer=32k;
error_log /var/log/nginx/myweb.error.log info;
#expires 31d;
#limit_conn gulag 5;
listen 80; # rcvbuf=64k backlog=128;
server_name myweb.com www.myweb.com;
include /etc/nginx/proxy_params;
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
root /srv/www/myweb/httpdocs;
}
location / {
proxy_pass http://balanced;
}
}
我需要,如果后端出现 403 响应,则尝试下一个。以及如果服务器没有响应。
谢谢,抱歉我的英语
答案1
您可能需要检查 proxy_next_upstream 指令......http://wiki.nginx.org/HttpProxyModule#proxy_next_upstream
我不知道是否可以在 1.0.x 版本上处理 403 个请求,但似乎很容易自定义代码,正如针对 0.6.32 和 0.8.7 版本的补丁所示...... http://forum.nginx.org/read.php?2,4830