我们使用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;
[...]
}
[...]
}
作为访问日志的一部分,我想记录为请求提供服务的上游服务器,在我们的例子中,这意味着关联的localhost端口。
文档中的变量(http://wiki.nginx.org/HttpProxyModule#Variables)提到了$ proxy_host和$ proxy_port,但在日志中它们总是以“frontends”和“80”的值结束。
答案 0 :(得分:37)
首先添加新的日志记录格式
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';
然后将accesslog重新定义为
access_log /var/log/nginx/access.log upstreamlog;
log_format转到http {}部分,access_log可以在内部位置。
答案 1 :(得分:25)
使用$upstream_addr
,您将获得127.0.0.1:8000
或unix:/home/my_user/www/my_site/tmp/.unicorn.sock