Nginx配置request_id提高微服务架构日志诊断能力

在高并发系统中,经常碰到没有配置链路跟踪标识的日志,或是研发各自为营,自已写的服务中加入标识符,当前端发起问题时在没有唯一标识符日志中排查问题犹如大海捞针。因此在 Nginx 中配置链路跟踪(即 request_id)是非常重要的,因为它可以帮助您跟踪和分析系统中的请求,从而提高系统的可观察性和诊断能力。链路跟踪可以帮助您了解请求在系统中的路径,识别潜在的瓶颈或问题,并更好地调试和监控应用程序的性能。下面是链路跟踪(request_id)的重要性

在 Nginx 中配置链路跟踪,您可以使用配置文件中的 log_format 指令来定义日志格式,并确保包含 request_id。您可以通过 proxy_set_header 指令将 request_id 从客户端传递给后端服务,以保持 request_id 的一致性。

1、日志修改:在配置文件nginx.conf http 模块修改日志添加$request_id

log_format main '$remote_addr||$remote_user||$time_local||$request_id||request||$request_method||$server_protocol||$http_referer||$request_uri||$status||$request_time||$body_bytes_sent||$request_length||$upstream_addr||$upstream_status||$upstream_response_time||$http_x_forwarded_for||$http_user_agent||$args||$arg_lan||$uri';

2、添加前后端request_id

conf.d/default.conf

server {

listen 80;

server_name 127.0.0.1 2;

add_header NG-REQUEST-ID "$request_id" always; ##前端输出request_id,便于全链路定位问题

location /backserver {

proxy_pass http://xx/backserver;

...

proxy_set_header NG-REQUEST-ID "$request_id"; ##传递至后端服务/也可将配置在location前server内全局生效

...

}

}

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值