nginx
反向代理可以檢測客戶端是否提供 X-Request-ID 標頭,並將其傳遞給後端伺服器。如果沒有提供這樣的頭,它可以提供隨機值。
map $http_x_request_id $reqid {
default $http_x_request_id;
"" $request_id;
}
上面的程式碼將請求 ID 儲存在變數 $reqid
中,隨後可以在日誌中使用它。
log_format trace '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$http_user_agent" '
'"$http_x_forwarded_for" $reqid';
它也應該傳遞給後端服務
location @proxy_to_app {
proxy_set_header X-Request-ID $reqid;
proxy_pass http://backend;
access_log /var/log/nginx/access_trace.log trace;
}