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

Nginx內(nèi)置變量應(yīng)用場(chǎng)景分析

 更新時(shí)間:2025年11月24日 11:28:32   作者:嵐叔運(yùn)維  
Nginx內(nèi)置變量速查表,涵蓋請(qǐng)求URI、客戶端信息、服務(wù)器信息、文件路徑、響應(yīng)與性能等類(lèi)別,這篇文章給大家介紹Nginx內(nèi)置變量應(yīng)用場(chǎng)景分析,感興趣的朋友跟隨小編一起看看吧

Nginx 的內(nèi)置變量是其配置靈活性的核心,它們提供了豐富的客戶端請(qǐng)求和服務(wù)器狀態(tài)信息。下述表格匯總了這些變量,并附帶了實(shí)用的分類(lèi)和說(shuō)明,方便快速查閱和使用。

1. Nginx 內(nèi)置變量速查表

變量類(lèi)別

變量名

說(shuō)明與示例

請(qǐng)求URI與參數(shù)?

$uri/ $document_uri

當(dāng)前請(qǐng)求的URI(不含參數(shù)),可能經(jīng)過(guò)內(nèi)部重寫(xiě)。例:/api/user

$request_uri

客戶端原始的完整請(qǐng)求URI(含參數(shù))。例:/api/user?id=1

$args/ $query_string

請(qǐng)求行中的參數(shù)字符串。例:id=1&name=test

$arg_name

獲取指定名稱(chēng)的參數(shù)值。例:$arg_id的值為 1

$is_args

如果請(qǐng)求有參數(shù),值為?,否則為空。常用于拼接URL

客戶端信息?

$remote_addr

客戶端的直接IP地址

$http_x_forwarded_for

透?jìng)骺蛻舳嗽糏P的請(qǐng)求頭,常用于識(shí)別經(jīng)過(guò)代理的真實(shí)用戶IP

$http_user_agent

客戶端瀏覽器標(biāo)識(shí)

$http_referer

請(qǐng)求來(lái)源頁(yè)面

請(qǐng)求內(nèi)容?

$request_method

HTTP 請(qǐng)求方法,如 GETPOST

$content_length

請(qǐng)求頭中的 Content-Length字段

$content_type

請(qǐng)求頭中的 Content-Type字段

$request_body

客戶端的請(qǐng)求主體內(nèi)容

服務(wù)器信息?

$host

請(qǐng)求的主機(jī)名,優(yōu)先級(jí):請(qǐng)求行 > "Host"請(qǐng)求頭 > 匹配的服務(wù)器名

$server_name

當(dāng)前匹配的服務(wù)器塊名稱(chēng)

$server_port

請(qǐng)求到達(dá)的服務(wù)器端口

$scheme

請(qǐng)求協(xié)議,httphttps

$https

若為SSL安全模式,值為 on,否則為空

文件路徑?

$document_root

當(dāng)前請(qǐng)求的文檔根目錄或別名

$request_filename

當(dāng)前請(qǐng)求映射到的本地文件系統(tǒng)路徑

響應(yīng)與性能?

$status

HTTP 響應(yīng)狀態(tài)碼

$body_bytes_sent

發(fā)送給客戶端的響應(yīng)體字節(jié)數(shù)(不含頭)

$request_time

處理請(qǐng)求所耗費(fèi)的時(shí)間

其他常用變量?

$cookie_name

獲取指定名稱(chēng)的 Cookie 值

$http_name

獲取任意請(qǐng)求頭字段,將-替換為下劃線,字母小寫(xiě)。例:$http_accept_language

$nginx_version

Nginx 版本號(hào)

$time_iso8601

服務(wù)器時(shí)間的 ISO 8601 格式

2. 核心變量詳解與應(yīng)用場(chǎng)景

了解這些變量的典型用法,能幫助你更好地配置Nginx。

  • 精確控制:$uri 與 $request_uri
    • $uri反映的是當(dāng)前請(qǐng)求經(jīng)過(guò)Nginx內(nèi)部處理(如重寫(xiě)規(guī)則)后的URI,不帶參數(shù)。它常用于內(nèi)部重定向或作為其他指令的輸入。
    • $request_uri則是客戶端發(fā)來(lái)的原始請(qǐng)求,包含所有參數(shù),且是只讀的。在構(gòu)建反向代理請(qǐng)求時(shí),如果你希望原封不動(dòng)地將客戶端請(qǐng)求傳遞給后端,通常會(huì)使用 $request_uri。
  • 獲取客戶端真實(shí)IP:$remote_addr $http_x_forwarded_for
    • 當(dāng)客戶端與Nginx服務(wù)器之間沒(méi)有代理時(shí),$remote_addr就是客戶端的真實(shí)IP。
    • 當(dāng)存在反向代理(如CDN、負(fù)載均衡器)時(shí),$remote_addr會(huì)是最后一個(gè)代理服務(wù)器的IP。此時(shí),代理服務(wù)器通常會(huì)將客戶端的原始IP放在 X-Forwarded-For請(qǐng)求頭中,這個(gè)值可以通過(guò) $http_x_forwarded_for變量獲取 。處理多級(jí)代理時(shí),這個(gè)變量可能包含一個(gè)IP列表。
  • 靈活獲取請(qǐng)求頭:$http_name
    • 這是一個(gè)通用變量,name可以替換為任何請(qǐng)求頭字段名的小寫(xiě)字母和下劃線形式。例如,獲取 Accept-Language頭,使用 $http_accept_language。這為根據(jù)請(qǐng)求頭信息做差異化處理提供了極大靈活性。

3. 實(shí)際應(yīng)用舉例

下面通過(guò)幾個(gè)常見(jiàn)場(chǎng)景展示這些變量的用法。

記錄詳細(xì)日志

你可以在 log_format中組合使用變量,記錄更豐富的信息。例如,記錄客戶端IP、用戶代理、請(qǐng)求處理時(shí)間和響應(yīng)狀態(tài):

log_format main '$remote_addr - $remote_user [$time_local] '
               '"$request" $status $body_bytes_sent '
               '"$http_referer" "$http_user_agent" '
               '$request_time';

訪問(wèn)控制與重定向

根據(jù)參數(shù)重寫(xiě)URL:

if ($arg_version = "v2") {
    rewrite ^/api/(.*)$ /v2/api/$1 last;
}

基于原始IP進(jìn)行訪問(wèn)限制(注意:需確保代理服務(wù)器正確設(shè)置了 X-Forwarded-For):

# 允許來(lái)自192.168.1.100和10.0.0.0/8網(wǎng)段的請(qǐng)求
if ($http_x_forwarded_for !~* "^(192\.168\.1\.100|10\..*)") {
    return 403;
}

代理配置

在反向代理設(shè)置中,常使用變量向后端傳遞原始請(qǐng)求信息:

location /api/ {
    proxy_pass http://backend_server;
    # 將原始Host頭傳遞給后端
    proxy_set_header Host $host;
    # 傳遞客戶端真實(shí)IP
    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;
}

4. 注意事項(xiàng)

  • 變量使用場(chǎng)景:并非所有變量都可以在所有配置指令中使用,具體需參考Nginx官方文檔。
  • 條件判斷:在Nginx配置中,尤其是在 if指令中使用變量進(jìn)行字符串匹配或條件判斷時(shí),需要特別注意Nginx的匹配規(guī)則,有時(shí)可能需要使用 ~*(不區(qū)分大小寫(xiě)匹配)或 ~(區(qū)分大小寫(xiě)匹配)等操作符 。
  • 變量性能:大部分內(nèi)置變量開(kāi)銷(xiāo)很小,但頻繁在復(fù)雜邏輯或高并發(fā)場(chǎng)景下使用某些涉及字符串處理的變量仍需注意。

到此這篇關(guān)于Nginx內(nèi)置變量應(yīng)用場(chǎng)景分析的文章就介紹到這了,更多相關(guān)nginx內(nèi)置變量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JUPYTER服務(wù)的NGINX反向代理配置過(guò)程

    JUPYTER服務(wù)的NGINX反向代理配置過(guò)程

    文章介紹了如何配置Jupyter Notebook和Nginx以支持WebSocket協(xié)議,首先,檢查并生成Jupyter配置文件,設(shè)置密碼,然后,在Nginx配置文件中為Jupyter配置代理,確保支持WebSocket
    2026-03-03
  • 阿里云Nginx配置https實(shí)現(xiàn)域名訪問(wèn)項(xiàng)目(圖文教程)

    阿里云Nginx配置https實(shí)現(xiàn)域名訪問(wèn)項(xiàng)目(圖文教程)

    這篇文章主要介紹了阿里云Nginx配置https實(shí)現(xiàn)域名訪問(wèn)項(xiàng)目(圖文教程),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Nginx服務(wù)器進(jìn)程數(shù)設(shè)置和利用多核CPU的方法

    Nginx服務(wù)器進(jìn)程數(shù)設(shè)置和利用多核CPU的方法

    這篇文章主要介紹了Nginx服務(wù)器進(jìn)程數(shù)設(shè)置和利用多核CPU的方法,這樣便可以更大限度地提高Nginx運(yùn)行效率,需要的朋友可以參考下
    2015-08-08
  • Nginx報(bào)Too Many Open Files總結(jié)

    Nginx報(bào)Too Many Open Files總結(jié)

    本文提供了解決Nginx服務(wù)器出現(xiàn)Too many open files錯(cuò)誤的方法,包括檢查和調(diào)整文件句柄限制、修改系統(tǒng)配置文件及nginx配置等,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • Nginx + consul + upsync 完成動(dòng)態(tài)負(fù)載均衡的方法詳解

    Nginx + consul + upsync 完成動(dòng)態(tài)負(fù)載均衡的方法詳解

    這篇文章主要介紹了Nginx + consul + upsync 完成動(dòng)態(tài)負(fù)載均衡,需要的朋友可以參考下
    2020-11-11
  • nginx下支持PATH_INFO的方法實(shí)例詳解

    nginx下支持PATH_INFO的方法實(shí)例詳解

    這篇文章主要介紹了nginx下支持PATH_INFO的方法,結(jié)合實(shí)例形式詳細(xì)分析了nginx下使用PATH_INFO模式的具體方法與相關(guān)使用技巧,需要的朋友可以參考下
    2016-02-02
  • 配置解決Nginx服務(wù)器中WordPress路徑不自動(dòng)加斜杠問(wèn)題

    配置解決Nginx服務(wù)器中WordPress路徑不自動(dòng)加斜杠問(wèn)題

    這篇文章主要介紹了配置解決Nginx服務(wù)器中WordPress路徑不自動(dòng)加斜杠問(wèn)題,nginx不會(huì)自動(dòng)在請(qǐng)求的最后加上一個(gè)斜線的問(wèn)題文中也有提到通用的規(guī)則改寫(xiě)方法,需要的朋友可以參考下
    2016-01-01
  • nginx的master進(jìn)程和worker進(jìn)程用法解讀

    nginx的master進(jìn)程和worker進(jìn)程用法解讀

    Nginx啟動(dòng)后包含master和worker進(jìn)程,master負(fù)責(zé)管理worker及讀取配置,worker處理請(qǐng)求,通過(guò)worker_processes設(shè)置worker數(shù)量(通常不超過(guò)CPU核心數(shù))或auto自動(dòng)檢測(cè),結(jié)合worker_cpu_affinity綁定CPU核心以優(yōu)化性能
    2025-07-07
  • NGINX詳細(xì)下載安裝及使用入門(mén)教程

    NGINX詳細(xì)下載安裝及使用入門(mén)教程

    Nginx是一種高性能的Web服務(wù)器軟件,它可以處理大量的并發(fā)連接,并且可以緩存HTTP請(qǐng)求以提高性能,本文給大家介紹NGINX詳細(xì)下載安裝及使用入門(mén)教程,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • nginx反向代理服務(wù)器及負(fù)載均衡服務(wù)配置方法

    nginx反向代理服務(wù)器及負(fù)載均衡服務(wù)配置方法

    正向代理一般是在客戶端設(shè)置代理服務(wù)器,通過(guò)代理服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求,最終訪問(wèn)到目標(biāo)服務(wù)器,這篇文章主要介紹了nginx反向代理服務(wù)器及負(fù)載均衡服務(wù)配置方法,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

开远市| 博野县| 侯马市| 灵台县| 句容市| 盘锦市| 长泰县| 平江县| 杭锦旗| 阿拉善右旗| 伊春市| 全椒县| 武义县| 丹东市| 九龙城区| 卢氏县| 南昌市| 新余市| 泰顺县| 合山市| 驻马店市| 邵东县| 晋江市| 铜山县| 廊坊市| 石阡县| 应城市| 阿尔山市| 西青区| 布拖县| 涟水县| 周至县| 德阳市| 宿松县| 镇远县| 郁南县| 芜湖市| 临城县| 资源县| 临猗县| 大余县|