最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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è)置的請求頭名稱(如 Host、X-Real-IP)。

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

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

2.1 設(shè)置Host 頭

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

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    # 與客戶端請求的 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(支持多級代理)

2.3 協(xié)議與安全頭

2.3.1 X-Forwarded-Proto??

proxy_set_header X-Forwarded-Proto $scheme;
  • ??作用??:傳遞原始請求協(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禁用或修改特定請求頭

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

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

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

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

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

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

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

??2.6 連接控制?

proxy_set_header Connection "";

2.6.1 支持 HTTP/1.1 持久連接

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

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

proxy_set_header Connection "";
proxy_http_version 1.1;

2.6.2 避免 Connection 頭沖突

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

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

proxy_set_header Connection "";

2.6.3 WebSocket 協(xié)議升級

WebSocket 特殊需求:WebSocket 需要協(xié)議升級(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)識、灰度發(fā)布標(biāo)記等自定義信。

2.8緩存控制?

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

2.9 請求頭刪除

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ò)性能(尤其對大文件或高并發(fā)場景)。

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 ""; 會從請求中移除該頭。
  • 若值包含變量且變量為空,頭字段會被移除,這樣就能阻止它們被傳遞。

下面是一個(gè)完整的配置示例,它會禁用所有默認(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx的HA高可用的搭建的實(shí)現(xiàn)

    Nginx的HA高可用的搭建的實(shí)現(xiàn)

    高可用是一種系統(tǒng)設(shè)計(jì)策略,旨在確保服務(wù)或應(yīng)用在面對硬件故障、軟件缺陷或任何其他異常情況時(shí),仍能持續(xù)穩(wěn)定地運(yùn)行,本文主要介紹了Nginx的HA高可用的搭建,感興趣的可以了解一下
    2024-08-08
  • nginx?-t、nginx?-s?stop?和?nginx?-s?reload?命令的詳細(xì)解析(結(jié)合應(yīng)用場景)

    nginx?-t、nginx?-s?stop?和?nginx?-s?reload?命令的詳細(xì)解析(結(jié)合應(yīng)

    本文解析Nginx的-t、-s?stop、-s?reload命令,分別用于配置語法檢查、強(qiáng)制停止服務(wù)和重新加載配置,強(qiáng)調(diào)在修改配置后需先檢查語法,確保服務(wù)穩(wěn)定性
    2025-07-07
  • Nginx中if語句的判斷條件與多條件判斷詳解

    Nginx中if語句的判斷條件與多條件判斷詳解

    這篇文章主要介紹了關(guān)于Nginx中if語句的判斷條件與多條件判斷的相關(guān)資料,文中給出了詳細(xì)的示例代碼,對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Nginx反向代理實(shí)現(xiàn)支持長連接詳解

    Nginx反向代理實(shí)現(xiàn)支持長連接詳解

    這篇文章主要給大家介紹了關(guān)于Nginx反向代理實(shí)現(xiàn)支持長連接的相關(guān)資料,文字介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • Crontab+Shell做Nginx日志切割腳本實(shí)例代碼

    Crontab+Shell做Nginx日志切割腳本實(shí)例代碼

    本篇文章主要介紹了Crontab+Shell做Nginx日志切割腳本實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • nginx?sticky實(shí)現(xiàn)基于cookie負(fù)載均衡示例詳解

    nginx?sticky實(shí)現(xiàn)基于cookie負(fù)載均衡示例詳解

    這篇文章主要為大家介紹了nginx?sticky實(shí)現(xiàn)基于cookie負(fù)載均衡示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式

    Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式

    這篇文章主要介紹了Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式,Ubuntu下的配置會有一些不同之處,需要的朋友可以參考下
    2015-07-07
  • Nginx配置SSL證書的實(shí)踐過程

    Nginx配置SSL證書的實(shí)踐過程

    文章介紹了如何在Nginx中配置SSL證書,包括監(jiān)聽443端口、設(shè)置證書路徑,并提供了一個(gè)基本的配置示例,作者鼓勵(lì)讀者參考和使用這個(gè)經(jīng)驗(yàn),并支持腳本之家
    2025-11-11
  • Nginx配置防盜鏈保護(hù)靜態(tài)資源的詳細(xì)教程

    Nginx配置防盜鏈保護(hù)靜態(tài)資源的詳細(xì)教程

    防盜鏈?zhǔn)且环N通過檢查 HTTP 請求頭中的 Referer 字段來限制資源訪問的技術(shù),常用于保護(hù)圖片、視頻等靜態(tài)資源不被其他網(wǎng)站直接引用,以下是Nginx防盜鏈的原理、配置步驟以及測試方法,幫助你快速配置和驗(yàn)證防盜鏈功能,需要的朋友可以參考下
    2025-02-02
  • Nginx 502 Bad Gateway報(bào)錯(cuò)原因解析與解決方案

    Nginx 502 Bad Gateway報(bào)錯(cuò)原因解析與解決方案

    我發(fā)現(xiàn)很多開發(fā)者對 502 錯(cuò)誤的理解停留在表面,認(rèn)為只是簡單的服務(wù)不可用,本文將帶大家從多維度了解Nginx 502 Bad Gateway報(bào)錯(cuò)原因和解決方法,需要的小伙伴可以了解下
    2025-09-09

最新評論

兴山县| 浦江县| 卢氏县| 荥经县| 体育| 阜城县| 北京市| 桦甸市| 洮南市| 永德县| 思南县| 芜湖市| 浦东新区| 明水县| 张家川| 奇台县| 鄄城县| 香港 | 鞍山市| 进贤县| 石狮市| 白山市| 平山县| 眉山市| 临城县| 社旗县| 小金县| 辛集市| 弋阳县| 宁南县| 洛扎县| 保亭| 建湖县| 华池县| 汾阳市| 建阳市| 金沙县| 新津县| 内江市| 东安县| 安陆市|