首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Nginx 反向代理實戰技巧:通過響應頭快速定位請求轉發的上游服務器

     編輯:Java 綜合教學

Nginx 反向代理實戰技巧:通過響應頭快速定位請求轉發的上游服務器

場景

Nginx 負載均衡多台上游服務器時,如何快速確認某個具體請求被轉發到了哪台機器?

配置示例

upstream demo {
    server 127.0.0.1:8781;
    server 127.0.0.1:8087;
}

server {
    listen 80;
    server_name demo.testcas.com;

    location / {
        # 關鍵配置:將上游地址與狀態碼注入響應頭
        add_header backendIP $upstream_addr;
        add_header backendCode $upstream_status;
        proxy_pass https://demo;
    }
}

驗證方法

  1. 重載 Nginx:nginx -s reload
  2. 瀏覽器訪問目標站點
  3. F12 開發者工具 → Network → 查看響應 Headers
  4. 找到 backendIP(上游 IP:端口)與 backendCode(上游 HTTP 狀態碼)

瀏覽器Network面板展示響應頭

變量說明

  • $upstream_addr:實際處理請求的上游服務器地址(IP:Port)
  • $upstream_status:上游服務器返回的 HTTP 狀態碼
  • 更多變量參考 Nginx 變量索引

應用場景

  • 故障排查:快速定位返回 5xx 的具體上游節點
  • 性能分析:對比不同節點響應時間(配合 $upstream_response_time)
  • 灰度驗證:確認流量是否按預期路由到新版本節點

無需修改應用代碼,純運維層面即可實現請求鏈路可視化,極大提升排障效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved