私のテストシナリオでは、ファイルが作成され、誰かがファイルを要求すると、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がリクエストを処理する速度を考えると、静的ファイルの再試行は本当に奇妙な考えです。代わりに、ワークフローで考えていることを修正する必要があります。