如何在 nginx 访问日志中记录 proxy_pass?

如何在 nginx 访问日志中记录 proxy_pass?

给定一个 nginx 配置:

proxy_pass http://yahoo.com;

如何获取字符串“http://yahoo.com“在access_log中? $remote_addr是 IP。

答案1

将其添加到您的log_format

$proxy_host$upstream_addr

^-感谢评论者 Alex。只是在这里添加,以便人们在访问时可以看到它。

答案2

您需要"$proxy_host" "$upstream_addr"您的 log_format。

    log_format  proxy_log  '[$time_local] $remote_addr - $remote_user "$host$request_uri" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'
                      ' Proxy: "$proxy_host" "$upstream_addr"';

然后在适当的 access_log 中引用日志标识符access_log /dev/stdout proxy_log;

相关内容