nginx は 404 で静的ファイルを 1 回再試行します

nginx は 404 で静的ファイルを 1 回再試行します

私のテストシナリオでは、ファイルが作成され、誰かがファイルを要求すると、404が返されます。そのファイルに対して再試行を1回実装したいと思います。現在の構成

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

これは、リアルタイムのファイル作成とアクセスには適しています (ファイルが 404 を返す場合は、再試行するようなものです)。ただし、ファイルが存在しない場合は、ネストされたリクエストが作成され (推測ですが)、最終的には 503 ゲートウェイ タイムアウトが返されます。1
) これに対するより良い実装はありますか?
2) 最初のリクエストがタイムアウトすると、ネストされたリクエストも終了しますか?

答え1

ローカルホストにプロキシする代わりに、ロケーション ブロックを複製するだけです。

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

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

しかし、nginxがリクエストを処理する速度を考えると、静的ファイルの再試行は本当に奇妙な考えです。代わりに、ワークフローで考えていることを修正する必要があります。

関連情報