NginxでPOSTデータをログに出力する
POSTのデータもログにとっておいたほうが後の調査にも役立つだろうと思い、設定をしておきます。nginxの場合、プロキシしている前提になりますが、location内にもaccess_logを書くことで$request_bodyからPOSTデータが拾えるようです。一応リクエストのボディの最大サイズを少なく設定しておきます。
- log formatにrequest_bodyを追加
log_format ltsv 'time:$time_local\t' 'msec:$msec\t' ・・・ 'request_body:$request_body';
- location内にaccess_logディレクティブを書く
location / { ... access_log /var/log/nginx/staging.example.com.access_log ltsv; proxy_pass http://staging_puma; ... }
- リクエストボディのサイズを制限(デフォルトだと1M)
client_max_body_size 1000;