Nginx proxy_set_header配置方式
Nginx proxy_set_header配置
HOST配置詳解及其應(yīng)用
1.1 配置表
如下表所示:
變量值 | 攜帶端口 | 描述 | 配置示例 |
http_host | √ | 轉(zhuǎn)發(fā)時會完整轉(zhuǎn)發(fā)ip+port | proxy_set_header Host $http_host |
proxy_host | √ | 80不攜帶,其他端口攜帶 | proxy_set_header Host $proxy_host |
host | × | 僅攜帶host | proxy_set_header Host $host |
1.2 應(yīng)用講解
1. 一般nginx做轉(zhuǎn)發(fā)的時候配置http_host即可
2. 如果遇到下圖所示的場景時,也就是域名指向一個服務(wù)器,由那個服務(wù)器根據(jù)不同的端口進(jìn)行轉(zhuǎn)發(fā)到各自的應(yīng)用服務(wù)器,甚至出現(xiàn)多級的跳轉(zhuǎn)情況,我們假定域名指向端口是8000應(yīng)用服務(wù)器A端口對于nginx域名的端口接受是 9000 , 應(yīng)用服務(wù)A提供的服務(wù)端口是 7000。對于A服務(wù)被請求的端口是9000, 實(shí)際用戶使用的是8000,那么就會出現(xiàn)302 資源重定向?qū)е碌臒o法找到的問題。
故在一級甚至多級跳轉(zhuǎn)的時候需要考慮這個問題。
Nginx: proxy_set_header與add_header區(qū)別
proxy_set_header
1)概述
proxy_set_header 和 add_header 是 Nginx 配置中兩個不同的指令, 它們各自有不同的用途
proxy_set_header 指令用于修改轉(zhuǎn)發(fā)到代理服務(wù)器(通常是后端應(yīng)用服務(wù)器)的 HTTP 請求頭
它允許您設(shè)置或覆蓋請求頭中的字段,以便后端服務(wù)器能夠接收正確的信息或根據(jù)這些信息做出響應(yīng)
例如,有時可能會使用 proxy_set_header 來設(shè)置 Host 頭,這樣后端服務(wù)器就知道它正在為哪個域名提供服務(wù)
有時候,還可以設(shè)置 X-Real-IP 和 X-Forwarded-For 頭來傳遞客戶端的真實(shí) IP 地址和請求鏈中的代理信息
示例:
location / { proxy_pass http://backend_servers; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
add_header
1)概述
add_header 指令用于向 Nginx 發(fā)出的 HTTP 響應(yīng)中添加或覆蓋響應(yīng)頭字段
這通常用于添加自定義的頭部信息,如跨域資源共享(CORS)的頭部,或者為響應(yīng)添加安全相關(guān)的頭部(如 X-Content-Type-Options)
2)示例
location / { # ... 其他配置 ... add_header X-Content-Type-Options nosniff; add_header X-Frame-Options DENY; add_header X-XSS-Protection "1; mode=block"; }
兩者區(qū)別
- 方向:proxy_set_header 修改的是請求頭(request header),而 add_header 修改的是響應(yīng)頭(response header)
- 目標(biāo):proxy_set_header 的目標(biāo)是后端服務(wù)器,用于通知后端關(guān)于請求的一些信息;而 add_header 的目標(biāo)是客戶端,用于向客戶端提供額外的信息或指令
- 使用場景:proxy_set_header 通常在反向代理配置中使用,確保后端服務(wù)器能正確處理請求;而 add_header 在需要向客戶端發(fā)送額外信息或增強(qiáng)安全性的情況下使用
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx使用Lua模塊實(shí)現(xiàn)WAF的原理解析
waf是通過執(zhí)行一系列針對HTTP/HTTPS的安全策略來專門為Web應(yīng)用提供保護(hù)的一款產(chǎn)品,本文重點(diǎn)給大家介紹Nginx使用Lua模塊實(shí)現(xiàn)WAF的原理,需要的朋友參考下吧2021-09-09Crontab+Shell做Nginx日志切割腳本實(shí)例代碼
本篇文章主要介紹了Crontab+Shell做Nginx日志切割腳本實(shí)例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動匹配目錄的方法
這篇文章主要介紹了nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動匹配目錄的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05nginx如何通過proxy_pass設(shè)置反向代理,隱藏端口號
這篇文章主要介紹了nginx如何通過proxy_pass設(shè)置反向代理,隱藏端口號方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01