nginx tenta novamente arquivos estáticos uma vez em 404

nginx tenta novamente arquivos estáticos uma vez em 404

No meu cenário de teste, se um arquivo estiver sendo criado e alguém solicitar o arquivo 404 será retornado. quero implementar uma nova tentativa uma vez para esse arquivo. Configuração atual

location /file/ {
    root /var/www/html/;
    try_files $uri $uri/ @retry;
}
location @retry {
    proxy_pass http://127.0.0.1;
}

isso funciona bem para criação e acesso a arquivos em tempo real (se um arquivo retornar 404, ele tentará novamente). mas se um arquivo não existir, ele criará solicitações aninhadas (eu acho) que eventualmente retornarão o tempo limite do gateway 503.
1) existe alguma implementação melhor para isso?
2) a solicitação aninhada também morrerá quando a primeira solicitação expirar?

Responder1

Simplesmente duplique seu bloco de localização em vez de fazer proxy para localhost.

location /file/ {
    root /var/www/html/;
    try_files $uri $uri/ @retry;
}

location @retry {
    root /var/www/html/;
    try_files $uri $uri/ =404;
}

Mas considerando a rapidez com que o nginx processa uma solicitação, essa coisa de tentar novamente para um arquivo estático parece umarealmenteideia estranha. Em vez disso, você deve corrigir o que tem em mente em seu fluxo de trabalho.

informação relacionada