8

POSTnginx (v1.4.1) を使用して外部サービスをプロキシしていますが、プロキシする前にリクエストの本文を検査し、場合によっては変更できるようにしたいと考えています。問題は、現在、変数POSTを介しているかどうかにかかわらず、リクエストの処理中にリクエスト本文にアクセスできないことです。$request_body

私は多くの投稿と SO の質問を読み、この推奨される戦略POSTを実装しました。これは、本文のログ記録を許可することを目的としています (proxy_passディレクティブを使用する場合)。ただし、これは私にとってはうまくいき$request_bodyますが、リクエストの処理中はまだ何も読み取ることができません。

わかりやすくするために、私の構成の関連セクションを次に示します。

location /proxy-this/ {
    client_max_body_size 8k;
    client_body_buffer_size 16k;
    client_body_in_single_buffer on;
    proxy_pass https://example.com/external-endpoint/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_set_header Content-Length '';
}

そして、私ができるようにしたいこと:

location /proxy-this/ {
    ... (same configuration as above) ...
    set $request_body $request_body&extra_param=1;
}

私はこれがnginx_luaモジュールを使用して可能であることを認識してHttpFormInputModuleおり、.

4

2 に答える 2

5

proxy_set_bodyを使用してみましたか?

それは次のようになります

location /proxy-this/ {
  ... (same configuration as above) ...
  proxy_set_body $request_body&extra_param=1;
}
于 2013-11-22T17:02:08.920 に答える