nginx をリバース プロキシとして使用しており、POST リクエストをキャッシュしたいと考えています。バックエンドは、POST 要求に対して適切なキャッシュ制御ヘッダーを返すように正しく構成されています。nginx では、次のように構成しました。
proxy_cache_methods POST;
proxy_cache_key "$request_method$request_uri$request_body";
これは、小さな HTTP POST リクエストに最適です。$request_body
ただし、大規模なリクエスト (ファイルのアップロードなど) ではが無視されているように見えることに気付き始めましたproxy_cache_key
。ファイルのアップロードを含むフォームがまったく異なるデータで 2 回送信されると、nginx はキャッシュされた結果を返します。
何が原因でしょうか? 大規模な POST リクエストでも$request_body
(またはのハッシュ$request_body
)を使用するように nginx を構成するにはどうすればよいですか?proxy_cache_key