web-dev-qa-db-ja.com

POSTリクエストをキャッシュするリバースプロキシ

ワニスはデフォルトで「GET」および「HEAD」リクエストをキャッシュすることを理解しています。

長すぎるgetリクエストを実行するとバックエンドサーバーが失敗するため、GETの代わりにPOST)に応答するようにしました。これはうまく機能しますが、次のように構成できるリバースプロキシが必要です。 cache POST GETと同じように応答します。

これらのPOSTリクエストをキャッシュできるリバースプロキシはありますか?

6
nurettin

Nginxは、指定した場合、POSTリクエストをキャッシュするようです。

proxy_cache_methods POST; # GET HEAD
proxy_cache_key "$uri|$request_body";
client_max_body_size 10k; # 413
12
nurettin

リバースプロキシは、要求ではなく、応答をキャッシュします。いずれにせよ、 POSTリクエストへの応答をキャッシュすることは現実的ではありません 。 POSTリクエストを送信するという行為自体が、そのURLのキャッシュを無効にすることになっているため、HTTP仕様では実際にはそれが許可されておらず、応答はデフォルトでキャッシュできません。応答をキャッシュする場合は、POST要求への応答としてリダイレクトを送信することになっています。

5
Michael Hampton