Você pode querer verificar a diretiva proxy_next_upstream ... link
Eu não sei se posso lidar com 403 pedidos na versão 1.0.x, mas parece fácil personalizar o código como mostra este patch para as versões 0.6.32 e 0.8.7 ... link
Eu tenho um servidor frontends com nginx, isso serve o conteúdo estático e encaminha por proxy_pass o resto.
Eu tenho um problema com os servidores backends e este erro aleatório de retorno 403, isso é em outro pergunta .
Para uma solução imediata, quero apenas passar se o apache retornar 200, agora tenho:
/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;
}
E nos virtuais:
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;
}
}
Eu preciso, no caso de resposta 403 das costas, tente a próxima. bem como se o servidor não responder.
Obrigado, desculpe meu inglês