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
だったので修正。