Nginx como um proxy de armazenamento em cache: Tentando um segundo envio, se primeiro devolve 404

3

Para usar o nginx como um proxy de cache, existe uma maneira de configurar 2 servidores upstream de uma forma que ele sempre tente o primeiro, a menos que ele retorne um 404, e somente nesse caso ele tentará o segundo upstream? / p>

Eu sei da opção backup no bloco de configuração upstream, mas isso só tenta esse servidor se o primeiro não estiver disponível. Eu estou falando sobre se o primeiro servidor está disponível, mas apenas esse arquivo solicitado retorna 404.

    
por user779159 10.11.2015 / 19:18

2 respostas

1

Não sei por que você gostaria de ter um tempo limite ou dizer que a resposta 50X é válida, mas se você realmente quer apenas os 404, os documentos do Nginx explicam isso da seguinte maneira:

link

max_fails=number

sets the number of unsuccessful attempts to communicate with the server that should happen in the duration set by the fail_timeout parameter to consider the server unavailable for a duration also set by the fail_timeout parameter. By default, the number of unsuccessful attempts is set to 1. The zero value disables the accounting of attempts.

Aqui está o kicker:

What is considered an unsuccessful attempt is defined by the proxy_next_upstream, fastcgi_next_upstream, uwsgi_next_upstream, scgi_next_upstream, and memcached_next_upstream directives.

link

Syntax: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | off ...;

http_404 a server returned a response with the code 404;

Esta resposta para um post semelhante poderia formar a base para sua configuração:

link

    
por 11.11.2015 / 08:46
0

Sim, você pode aumentar weight de um servidor em um grupo upstream e jogar com proxy_next_upstream para incluir ou excluir os códigos que você não deseja alternar. Dessa forma, o servidor com maior peso atenderá a maioria dos pedidos (a maioria / minoria depende do valor do peso, mas algumas solicitações serão atendidas pelo segundo, de qualquer forma).

Ainda assim, backup é a coisa certa a ser usada. Não consigo imaginar uma razão para não usar algum servidor que sempre contenha todos os dados.

    
por 10.11.2015 / 19:34