nginx で lighttpd のようにユーザーをトラッキングする方法

lighttpd では mod_fastcgi や mod_proxy 経由でアプリケーションが、

X-Lighttpd-Hogehoge: foobar

のような X-Lighttpd- ではじまるヘッダーを返してもそれをクライアントに送り返さないという仕組みがあり、 たとえばそれを利用してアプリからユーザーIDを返してあげたりすると、それをクライアントに送ることなく lighttpd のアクセスログにだけ記録する、といったようなことが出来て便利なのですが、 同じようなことを nginx でやりたかったのでしらべてみた。

アプリから

X-MyApp-User: foobar

みたいなのを返してそれをクライアントに送ることなくアクセスログに記録したい場合、まずクライアントに送らないように、

proxy_hide_header X-MyApp-User;

とし、さらに accesslog のフォーマット設定 log_format

$upstream_http_x_myapp_user

を追加することで記録が行えました。まる。

追記@2011-11-08T16:22:26+09:00

$upstream_http_myapp_user $upstream_http_x_myapp_user

だったので修正。

by typester / at 2011-11-08T13:46:00 / nginx / Comments(0)