Nginx 作為反向代理時設置的請求頭
這三個參數(shù)是 Nginx 作為反向代理時設置的請求頭,目的是把真實的客戶端信息傳遞給后端應用(Tomcat、Spring Boot、Node.js 等)。
location /api {
proxy_pass http://172.28.3.106:8094;
proxy_redirect http:// https://;
proxy_set_header Host $host:$server_port;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
proxy_set_header Host $host:$server_port;
- 含義:把客戶端請求時的 Host 頭信息 傳給后端。
$host:請求的域名(可能來自Host頭,也可能是請求的 IP)。$server_port:Nginx 接收請求時監(jiān)聽的端口號。- 作用:后端應用拿到的
Host頭和用戶訪問的保持一致,避免后端誤判。
?? 例子:
用戶訪問
http://example.com:8080/api/user
Nginx 轉(zhuǎn)發(fā)時會帶上:
Host: example.com:8080
proxy_set_header X-Real-IP $remote_addr;
- 含義:告訴后端應用,真實客戶端的 IP 地址。
$remote_addr:Nginx 接收到請求時,客戶端的源 IP。- 作用:讓后端知道用戶的真實 IP,而不是只看到 Nginx 的 IP。
?? 例子:
如果用戶 IP 是 203.0.113.5,那么后端會收到:
X-Real-IP: 203.0.113.5
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
含義:傳遞請求經(jīng)過的 代理鏈路中的客戶端 IP 列表。
$proxy_add_x_forwarded_for:會在已有的 X-Forwarded-For 頭后面追加 $remote_addr。
作用:
- 如果請求直接來自客戶端 → 就是客戶端 IP。
- 如果請求經(jīng)過多個代理 → 會形成一個 IP 列表,最后一個就是最近的客戶端。
?? 例子:
用戶 203.0.113.5 → 代理1(Nginx1) → 代理2(Nginx2) → 后端。
后端收到的頭可能是:
X-Forwarded-For: 203.0.113.5, 10.0.0.1, 10.0.0.2
(第一個 IP 永遠是真實用戶的公網(wǎng) IP)
總結
| Header 配置 | 作用 | 典型用途 |
|---|---|---|
| Host $host:$server_port | 保留客戶端訪問的域名和端口 | 后端根據(jù)域名/端口 做路由或多租戶 |
| X-Real-IP $remote_addr | 傳遞客戶端真實 IP | 后端日志、風控、限流 |
| X-Forwarded-For $proxy_add_x_forwarded_for | 傳遞完整代理鏈路上的客戶端 IP 列表 | 追蹤用戶來源、防攻擊分析 |
在實際項目里,Spring Boot 里要拿到 真實客戶端 IP,通常要優(yōu)先?。?/p>
- X-Forwarded-For 的第一個 IP
- 如果沒有,就取 X-Real-IP
- 否則再 fallback 到 request.getRemoteAddr()
到此這篇關于Nginx 作為反向代理時設置的請求頭的文章就介紹到這了,更多相關Nginx 反向代理設置的請求頭內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Nginx配置指令location匹配符優(yōu)先級和安全問題
使用nginx 很久了,它的性能高,穩(wěn)定性表現(xiàn)也很好,得到了很多人的認可。特別是它的配置,有點像寫程序一樣,每行命令結尾一個";"號,語句塊用"{}"括起來。 配制好,直接nginx -t 檢查配制情況,配制成功,直接運行:service nginx reload .服務器沒有任何宕機情況下,實現(xiàn)平穩(wěn)修改配置2014-03-03
強大的 Web 應?服務器OpenResty安裝(Nginx倉庫)
OpenResty 是?個強大的 Web 應?服務器,Web 開發(fā)?員可以使用 Lua 腳本語?調(diào)動 Nginx ?持的各種 C 以及 Lua 模塊,更主要的是在性能方面,OpenResty可以快速構造出足以勝任 10K 以上并發(fā)連接響應的超高性能 Web 應用系統(tǒng)2023-06-06
Nginx禁用TLSv1.0?1.1改為TLSv1.2?1.3的操作方法
使用Mozilla?SSL配置工具生成配置,修改nginx.conf的ssl_protocols和ssl_ciphers,通過ssllabs檢測及Linux命令測試TLS版本支持情況,確保網(wǎng)站SSL安全配置生效,本文給大家介紹Nginx禁用TLSv1.0?1.1改為TLSv1.2?1.3的操作方法,需要的朋友一起看看吧2025-08-08
nginx部署前端項目location時root和alias配置指南
nginx指定文件路徑有兩種方式root和alias,下面這篇文章主要給大家介紹了關于nginx部署前端項目location時root和alias配置的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01

