この設定では、Nginxをリバースプロキシとして使用します。
upstream frontends {
server 127.0.0.1:8000;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
[...]
}
server {
location / {
proxy_pass http://frontends;
[...]
}
[...]
}
アクセスログの一部として、リクエストを処理したアップストリームサーバーを記録したいと思います。これは、この場合、関連付けられたローカルホストポートを意味します。
ドキュメントの変数( http://wiki.nginx.org/HttpProxyModule#Variables )には$ proxy_Hostと$ proxy_portが記載されていますが、ログでは常に値「frontends」と「80」になります「。
使用する $upstream_addr
を取得すると、たとえば127.0.0.1:8000
またはunix:/home/my_user/www/my_site/tmp/.Unicorn.sock
最初に新しいログ形式を追加します
log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time';
そして、アクセスログを次のように再定義します
access_log /var/log/nginx/access.log upstreamlog;
log_formatはhttp {}セクションに移動します。access_logはロケーション内にあります。