欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx中的proxy_set_header核心參數(shù)解析

 更新時(shí)間:2025年08月25日 16:33:29   作者:嵐叔運(yùn)維  
文章詳解Nginx中proxy_set_header指令的語法與用途,涵蓋設(shè)置Host頭、傳遞真實(shí)IP、協(xié)議信息、連接控制、CORS支持、自定義頭及緩存管理,強(qiáng)調(diào)需注意指令位置、空值處理和特殊頭格式,感興趣的朋友跟隨小編一起看看吧

1. proxy_set_header的基本語法

proxy_set_header  <HeaderName>   <HeaderValue>;

• HeaderName:需設(shè)置的請(qǐng)求頭名稱(如 Host、X-Real-IP)。

• HeaderValue:請(qǐng)求頭的值,可以是靜態(tài)字符串、Nginx 內(nèi)置變量(如 $host、$remote_addr)或兩者的組合

2. 核心參數(shù)解析

2.1 設(shè)置Host 頭

  • 作用:指定后端服務(wù)器的主機(jī)名。確保后端服務(wù)器接收到的 Host 頭與客戶端請(qǐng)求一致,避免因 Host 不匹配導(dǎo)致的 400/404 錯(cuò)誤。若未設(shè)置,默認(rèn)傳遞代理服務(wù)器的主機(jī)名。
  • 配置示例:
  proxy_set_header Host $host;          # 傳遞客戶端請(qǐng)求的原始 Host
  proxy_set_header Host $http_host;     # 優(yōu)先使用請(qǐng)求頭中的 Host(若存在)
  proxy_set_header Host backend.example.com;    # 強(qiáng)制指定固定值
  • 場(chǎng)景:當(dāng)后端應(yīng)用依賴 Host 頭進(jìn)行路由或生成絕對(duì) URL 時(shí)需配置。
  • 示例對(duì)比

1)未設(shè)置 proxy_set_header Host

GET / HTTP/1.1
Host: backend.example.com  # 默認(rèn)由 proxy_pass 決定

2)設(shè)置 proxy_set_header Host $host

GET / HTTP/1.1
Host: nginx.example.com    # 與客戶端請(qǐng)求的 Host 一致

2.2 客戶端真實(shí) IP 傳遞

2.2.1 X-Real-IP??

proxy_set_header X-Real-IP $remote_addr;

作用??:將客戶端真實(shí) IP 寫入 X-Real-IP 頭,供后端服務(wù)器讀取。

2.2.2 X-Forwarded-For??

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

作用??:在原有 X-Forwarded-For 頭的基礎(chǔ)上追加客戶端 IP(支持多級(jí)代理)

2.3 協(xié)議與安全頭

2.3.1 X-Forwarded-Proto??

proxy_set_header X-Forwarded-Proto $scheme;
  • ??作用??:傳遞原始請(qǐng)求協(xié)議(HTTP/HTTPS),用于后端生成正確鏈接。

2.3.2 安全頭?? 

proxy_set_header X-Frame-Options "SAMEORIGIN";  # 防點(diǎn)擊劫持
proxy_set_header X-XSS-Protection "1; mode=block";  # 防 XSS 攻擊

2.4禁用或修改特定請(qǐng)求頭

2.4.1 禁用請(qǐng)求頭:將值設(shè)為空字符串

proxy_set_header User-Agent "";  # 禁用 User-Agent 頭

2.4.2 修改請(qǐng)求頭:設(shè)置新的值

proxy_set_header Authorization "Bearer <token>";  # 修改授權(quán)頭

2.5 支持 CORS(跨域資源共享)

proxy_set_header Origin $http_origin;   # 直接傳遞客戶端Origin值?

??作用??:保留客戶端原始 Origin 頭(適用于動(dòng)態(tài)域名場(chǎng)景)

??2.6 連接控制?

proxy_set_header Connection "";

2.6.1 支持 HTTP/1.1 持久連接

問題:默認(rèn)情況下,Nginx 的 Connection: close 會(huì)強(qiáng)制關(guān)閉與后端的連接,導(dǎo)致每次請(qǐng)求都需要重新建立 TCP 連接,增加延遲。

解決方案:如果后端服務(wù)器支持 HTTP/1.1 的持久連接(Keep-Alive),可以通過以下配置啟用:

proxy_set_header Connection "";
proxy_http_version 1.1;

2.6.2 避免 Connection 頭沖突

問題:如果客戶端請(qǐng)求中包含 Connection: keep-alive,而 Nginx 默認(rèn)覆蓋為 Connection: close,可能導(dǎo)致后端服務(wù)器行為異常。

解決方案:通過清空 Connection 頭,保留客戶端原始意圖:

proxy_set_header Connection "";

2.6.3 WebSocket 協(xié)議升級(jí)

WebSocket 特殊需求:WebSocket 需要協(xié)議升級(jí)(Upgrade: websocket),此時(shí)必須設(shè)置 Connection: upgrade

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
  • 注意:此時(shí)不能清空 Connection 頭,否則握手失敗。

2.7自定義頭傳遞?

proxy_set_header X-Custom-Header "DynamicValue";
  • ????作用:傳遞業(yè)務(wù)標(biāo)識(shí)、灰度發(fā)布標(biāo)記等自定義信。

2.8緩存控制?

proxy_set_header Cache-Control "no-cache, no-store";
  • ??作用??:強(qiáng)制后端禁用緩存,適用于動(dòng)態(tài)內(nèi)容。

2.9 請(qǐng)求頭刪除

proxy_set_header Accept-Encoding "";  # 禁用后端壓縮
  • 優(yōu)點(diǎn)
    避免后端服務(wù)器進(jìn)行壓縮處理,減少 CPU 開銷。
  • 缺點(diǎn)
    響應(yīng)內(nèi)容未壓縮,可能導(dǎo)致傳輸數(shù)據(jù)量增加,影響網(wǎng)絡(luò)性能(尤其對(duì)大文件或高并發(fā)場(chǎng)景)。

3 注意事項(xiàng)

3.1 下劃線

  若自定義頭含下劃線(如 X-My_Header),需在配置中開啟:

underscores_in_headers on;

??????3.2指令位置

 proxy_set_header 必須放在 location 或 server 塊中,否則無效。

3.3 空值處理

  • 設(shè)置 proxy_set_header field ""; 會(huì)從請(qǐng)求中移除該頭。
  • 若值包含變量且變量為空,頭字段會(huì)被移除,這樣就能阻止它們被傳遞。

下面是一個(gè)完整的配置示例,它會(huì)禁用所有默認(rèn)頭,僅傳遞必要的客戶端信息:

server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://backend;
        # 禁用默認(rèn)傳遞的頭
        proxy_set_header Host "";
        proxy_set_header Connection "";
        proxy_set_header User-Agent "";
        proxy_set_header Accept "";
        proxy_set_header Accept-Encoding "";
        # 僅傳遞必要的頭
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # 若需要授權(quán)頭
        proxy_set_header Authorization $http_authorization;
    }
}

到此這篇關(guān)于Nginx之proxy_set_header核心參數(shù)解析的文章就介紹到這了,更多相關(guān)nginx proxy_set_header參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nginx配置ssl實(shí)現(xiàn)https訪問(小白文)

    nginx配置ssl實(shí)現(xiàn)https訪問(小白文)

    安全起見,需要將之前的http接口訪問變成https訪問,所以需要配置SSL證書,本文主要介紹了nginx配置ssl實(shí)現(xiàn)https訪問,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Nginx在Windows下的安裝及環(huán)境配置(將nginx作為服務(wù)運(yùn)行)

    Nginx在Windows下的安裝及環(huán)境配置(將nginx作為服務(wù)運(yùn)行)

    這篇文章主要介紹了Nginx在Windows下的安裝及環(huán)境配置,主要是將nginx作為服務(wù)運(yùn)行,需要的朋友可以參考下
    2018-11-11
  • windows下nginx的安裝使用及解決80端口被占用nginx不能啟動(dòng)的問題

    windows下nginx的安裝使用及解決80端口被占用nginx不能啟動(dòng)的問題

    這篇文章主要給大家介紹了關(guān)于windows下nginx的安裝使用,以及如何解決80端口被占用導(dǎo)致nginx不能啟動(dòng)的問題,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • Nginx作為反向代理時(shí)傳遞客戶端IP的設(shè)置方法

    Nginx作為反向代理時(shí)傳遞客戶端IP的設(shè)置方法

    因?yàn)閚ginx的優(yōu)越性,現(xiàn)在越來越多的用戶在生產(chǎn)環(huán)境中使用nginx作為前端,不管nginx在前端是做負(fù)載均衡還是只做簡(jiǎn)單的反向代理,都需要把日志轉(zhuǎn)發(fā)到后端real server,以方便我們檢查程序的各種故障
    2014-08-08
  • Nginx中rewrite(地址重定向)的深入剖析

    Nginx中rewrite(地址重定向)的深入剖析

    Rewrite主要實(shí)現(xiàn)url地址重寫,以及url地址跳轉(zhuǎn),下面這篇文章主要給大家介紹了關(guān)于Nginx中rewrite(地址重定向)的深入剖析,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Nginx中輪詢機(jī)制的實(shí)現(xiàn)

    Nginx中輪詢機(jī)制的實(shí)現(xiàn)

    Nginx是一款優(yōu)秀的Web服務(wù)器和反向代理服務(wù)器,本文主要介紹了Nginx中最基本的輪詢機(jī)制的原理、配置及其優(yōu)化方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10
  • Nginx Lua 緩存配置的實(shí)現(xiàn)步驟

    Nginx Lua 緩存配置的實(shí)現(xiàn)步驟

    在Web應(yīng)用緩存層次中,Nginx Lua緩存因其高效的協(xié)程機(jī)制,與Nginx的集成,以及OpenResty的擴(kuò)展性,成為了一種高性能的緩存解決方案,本文就來詳細(xì)介紹,感興趣的可以了解一下
    2022-05-05
  • Nginx?502?Bad?Gateway錯(cuò)誤解決詳細(xì)指南與實(shí)例

    Nginx?502?Bad?Gateway錯(cuò)誤解決詳細(xì)指南與實(shí)例

    這篇文章主要介紹了Nginx?502?Bad?Gateway錯(cuò)誤解決的相關(guān)資料,502BadGateway錯(cuò)誤是Web開發(fā)和運(yùn)維中常見的錯(cuò)誤,表示一個(gè)服務(wù)器在充當(dāng)網(wǎng)關(guān)或代理時(shí),從上游服務(wù)器收到了一個(gè)無效的響應(yīng),需要的朋友可以參考下
    2024-11-11
  • 使用google-perftools優(yōu)化nginx在高并發(fā)時(shí)的性能的教程(完整版)

    使用google-perftools優(yōu)化nginx在高并發(fā)時(shí)的性能的教程(完整版)

    如果使用googler開發(fā)的google-perftools優(yōu)化Nginx和MySQL的內(nèi)存管理,性能將會(huì)有一定程度的提升。特別是對(duì)高并發(fā)下的服務(wù)器,效果更明顯
    2013-02-02
  • 使用nginx配置基于域名的虛擬主機(jī)實(shí)現(xiàn)​

    使用nginx配置基于域名的虛擬主機(jī)實(shí)現(xiàn)​

    這篇文章主要介紹了nginx配置基于域名的虛擬主機(jī)實(shí)現(xiàn)&#8203;,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評(píng)論