Rock'n'Hack ブログ

それなりハッカーを目指して、もろもろのメモ。bloggerから引っ越しました。

Nginx で特定のHTTPヘッダをログに出力する


log_format header '$http_hogehoge';

という感じで、http_ の後ろに出力したいヘッダ名を追記すればいい。

今までも、 http_referer とか http_user_agent とか使ってたけど、
そもそもそうゆうルールだってことを分かってなかったことに気づいてしまった午後…orz


例えば、AWS ELB の後ろでNginxとか動かしてて、アクセス元のIPアドレスを出力したい時は、
x_forwarded_for に入っているので、'$http_x_forwarded_for' で出力してあげればいい。
さらに ltsv で出力したいということで、↓みたいな感じでやってます。



log_format ltsv 'host:$remote_addr\t'
'user:$remote_user\t'
'time:$time_local\t'
'request:$request\t'
'status:$status\t'
'size:$body_bytes_sent\t'
'referer:$http_referer\t'
'ua:$http_user_agent\t'
'forwarded_for:$http_x_forwarded_for\t'
'forwarded_proto:$http_x_forwarded_proto\t'
'forwarded_port:$http_x_forwarded_port\t'
'http_host:$http_host\t'
'request_time:$request_time\t';

ラベル名が長い感じするけど、自分のところはアクセス量が膨大では無いので特に問題ないです。


おしまい。