nginx reintenta archivos estáticos una vez en 404

nginx reintenta archivos estáticos una vez en 404

En mi escenario de prueba, si se está creando un archivo y alguien solicita el archivo, se devolverá el 404. Quiero implementar un reintento una vez para ese archivo. configuración actual

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

esto funciona bien para la creación y el acceso a archivos en tiempo real (si un archivo devuelve 404, lo vuelve a intentar). pero si un archivo no existe, crea solicitudes anidadas (supongo) que eventualmente devolverán un tiempo de espera de puerta de enlace 503.
1) ¿Existe alguna implementación mejor para esto?
2) ¿La solicitud anidada también desaparecerá cuando se agote el tiempo de espera de la primera solicitud?

Respuesta1

Simplemente duplique su bloque de ubicación en lugar de enviarlo a localhost.

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

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

Pero considerando lo rápido que es nginx para procesar una solicitud, este reintento para un archivo estático parece unaen realidadidea rara. En su lugar, deberías arreglar lo que tienes en mente en tu flujo de trabajo.

información relacionada