nginx versucht bei 404 einmal, statische Dateien erneut zu verarbeiten

nginx versucht bei 404 einmal, statische Dateien erneut zu verarbeiten

In meinem Testszenario wird, wenn eine Datei erstellt wird und jemand die Datei anfordert, die Fehlermeldung 404 zurückgegeben. Ich möchte für diese Datei einmalig einen erneuten Versuch implementieren. Aktuelle Konfiguration

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

das funktioniert gut für die Erstellung und den Zugriff auf Dateien in Echtzeit (wenn eine Datei 404 zurückgibt, wird es sozusagen erneut versucht). Aber wenn eine Datei nicht existiert, werden verschachtelte Anfragen erstellt (nehme ich an), die letztendlich ein 503-Gateway-Timeout zurückgeben.
1) Gibt es dafür eine bessere Implementierung?
2) Wird die verschachtelte Anfrage auch beendet, wenn die 1. Anfrage abläuft?

Antwort1

Duplizieren Sie einfach Ihren Standortblock, anstatt ihn per Proxy an den lokalen Host zu senden.

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

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

Aber wenn man bedenkt, wie schnell nginx eine Anfrage verarbeitet, scheint diese Wiederholungssache für eine statische Datei eineWirklichkomische Idee. Sie sollten stattdessen das, was Sie vorhaben, in Ihrem Workflow umsetzen.

verwandte Informationen