![如何在 nginx 访问日志中记录 proxy_pass?](https://linux22.com/image/709878/%E5%A6%82%E4%BD%95%E5%9C%A8%20nginx%20%E8%AE%BF%E9%97%AE%E6%97%A5%E5%BF%97%E4%B8%AD%E8%AE%B0%E5%BD%95%20proxy_pass%EF%BC%9F.png)
给定一个 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;