nginx怎么在输出日志access.log中打印转发之后的完整地址?
2条回答 默认 最新
- 社区专家-Monster-XH 2023-03-22 16:39关注
基于Monster 组和GPT的调写:
- 用nginx的内置变量$upstream_addr。该变量会包含被转发到的后端服务器的IP地址和端口号。可以将$upstream_addr添加到nginx的log_format配置中,以在access.log中输出被转发到的完整地址。
下面是一个示例的nginx配置:
http { log_format custom_log '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' 'upstream_addr:$upstream_addr'; server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log /var/log/nginx/access.log custom_log; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报