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

Nginx配置中if判斷的使用

 更新時(shí)間:2024年10月24日 09:55:08   作者:0945v1  
在Nginx配置中,有時(shí)rewrite規(guī)則無(wú)法滿足復(fù)雜邏輯判斷需求,這時(shí)需要使用if語(yǔ)法,if可以根據(jù)文件是否存在、路徑特定條件等進(jìn)行判斷,本文就來(lái)介紹一下if判斷的使用

當(dāng)rewrite的重寫(xiě)規(guī)則滿足不了需求時(shí),比如需要判斷當(dāng)文件不存在時(shí)、當(dāng)路徑包含xx時(shí)等條件,則需要用到if

if語(yǔ)法

if (表達(dá)式) {
    ...
}

表達(dá)式語(yǔ)法:

  • 當(dāng)表達(dá)式只是一個(gè)變量時(shí),如果值為空或任何以0開(kāi)頭的字符串都會(huì)當(dāng)做false
  • 直接比較變量和內(nèi)容時(shí),使用=或!=
  • -f和!-f用來(lái)判斷是否存在文件
  • -d和!-d用來(lái)判斷是否存在目錄
  • -e和!-e用來(lái)判斷是否存在文件或目錄
  • -x和!-x用來(lái)判斷文件是否可執(zhí)行

為了配置if的條件判斷,這里需要用到nginx中內(nèi)置的全局變量

$args               這個(gè)變量等于請(qǐng)求行中的參數(shù),同$query_string
$content_length     請(qǐng)求頭中的Content-length字段。
$content_type       請(qǐng)求頭中的Content-Type字段。
$document_root      當(dāng)前請(qǐng)求在root指令中指定的值。
$host               請(qǐng)求主機(jī)頭字段,否則為服務(wù)器名稱。
$http_user_agent    客戶端agent信息
$http_cookie        客戶端cookie信息
$limit_rate         這個(gè)變量可以限制連接速率。
$request_method     客戶端請(qǐng)求的動(dòng)作,通常為GET或POST。
$remote_addr        客戶端的IP地址。
$remote_port        客戶端的端口。
$remote_user        已經(jīng)經(jīng)過(guò)Auth Basic Module驗(yàn)證的用戶名。
$request_filename   當(dāng)前請(qǐng)求的文件路徑,由root或alias指令與URI請(qǐng)求生成。
$scheme             HTTP方法(如http,https)。
$server_protocol    請(qǐng)求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1。
$server_addr        服務(wù)器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個(gè)值。
$server_name        服務(wù)器名稱。
$server_port        請(qǐng)求到達(dá)服務(wù)器的端口號(hào)。
$request_uri        包含請(qǐng)求參數(shù)的原始URI,不包含主機(jī)名,如:”/foo/bar.php?arg=baz”。
$uri                不帶請(qǐng)求參數(shù)的當(dāng)前URI,$uri不包含主機(jī)名,如”/foo/bar.html”。
$document_uri       與$uri相同。

舉例說(shuō)明

1、如果文件不存在則返回400

if (!-f $request_filename) {
    return 400;
}

2、如果host不是jouypub.com,則301到j(luò)ouypub.com中

if ( $host != 'jouypub.com' ){
    rewrite ^/(.*)$ https://jouypub.com/$1 permanent;
}

3、如果請(qǐng)求類型不是POST則返回405

if ($request_method = POST) {
    return 405;
}

4、如果參數(shù)中有a=1則301到指定域名

if ($args ~ a=1) {
    rewrite ^ http://example.com/ permanent;
}

5、在某種場(chǎng)景下可結(jié)合location規(guī)則來(lái)使用,如:

# 訪問(wèn) /test.html 時(shí)
location = /test.html {
    # 設(shè)置默認(rèn)值為xiaowu
    set $name xiaowu;
    # 如果參數(shù)中有 name=xx 則使用該值
    if ($args ~* name=(\w+?)(&|$)) {
        set $name $1;
    }
    # 301
    rewrite ^ /$name.html permanent;
}

上面表示:
/test.html => /xiaowu.html
/test.html?name=ok => /ok.html?name=ok

到此這篇關(guān)于Nginx配置中if判斷的使用的文章就介紹到這了,更多相關(guān)Nginx if判斷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx四層負(fù)載均衡的配置指南

    Nginx四層負(fù)載均衡的配置指南

    當(dāng)一臺(tái)服務(wù)器的單位時(shí)間內(nèi)的訪問(wèn)量越大時(shí),服務(wù)器壓力就越大,大到超過(guò)自身承受能力時(shí),服務(wù)器就會(huì)崩潰.為了避免服務(wù)器崩潰,讓用戶有更好的體驗(yàn),我們通過(guò)負(fù)載均衡的方式來(lái)分擔(dān)服務(wù)器壓力,這篇文章主要給大家介紹了關(guān)于Nginx四層負(fù)載均衡配置的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • Nginx同端口部署多個(gè)vue以及unapp項(xiàng)目

    Nginx同端口部署多個(gè)vue以及unapp項(xiàng)目

    文章詳細(xì)介紹了如何在同一端口下部署PC端和App端項(xiàng)目,包括Nginx配置、前端打包配置、manifest.json配置以及針對(duì)Vue3+vite項(xiàng)目的特殊配置,通過(guò)示例項(xiàng)目A和項(xiàng)目B,展示了如何修改Vite配置文件、調(diào)整路由配置,并通過(guò)Nginx進(jìn)行關(guān)鍵配置
    2026-01-01
  • Nginx使用Lua模塊實(shí)現(xiàn)WAF的原理解析

    Nginx使用Lua模塊實(shí)現(xiàn)WAF的原理解析

    waf是通過(guò)執(zhí)行一系列針對(duì)HTTP/HTTPS的安全策略來(lái)專門為Web應(yīng)用提供保護(hù)的一款產(chǎn)品,本文重點(diǎn)給大家介紹Nginx使用Lua模塊實(shí)現(xiàn)WAF的原理,需要的朋友參考下吧
    2021-09-09
  • Nginx啟動(dòng)、重啟、關(guān)閉/Nginx開(kāi)啟啟動(dòng)配置實(shí)現(xiàn)方式

    Nginx啟動(dòng)、重啟、關(guān)閉/Nginx開(kāi)啟啟動(dòng)配置實(shí)現(xiàn)方式

    這篇文章介紹了如何手動(dòng)啟動(dòng)、重啟、關(guān)閉Nginx服務(wù),以及如何通過(guò)配置文件和系統(tǒng)服務(wù)來(lái)管理Nginx,同時(shí),還介紹了如何檢查Nginx是否開(kāi)機(jī)自啟動(dòng),并提供了查看Nginx狀態(tài)、啟動(dòng)、停止和重啟服務(wù)的命令
    2026-03-03
  • 教你快速構(gòu)建一個(gè)基于nginx的web集群項(xiàng)目

    教你快速構(gòu)建一個(gè)基于nginx的web集群項(xiàng)目

    本文教你快速構(gòu)建一個(gè)基于nginx的4/7層負(fù)載均衡的web集群項(xiàng)目,項(xiàng)目步驟本文給大家介紹介紹,對(duì)nginx web集群項(xiàng)目感興趣的朋友一起看看吧
    2021-11-11
  • windows7下安裝PHP+nginx的方法

    windows7下安裝PHP+nginx的方法

    這篇文章主要介紹了windows7下安裝PHP+nginx的方法,較為詳細(xì)的分析了Windows7環(huán)境下安裝php與nginx服務(wù)器環(huán)境的具體步驟與相關(guān)設(shè)置技巧,需要的朋友可以參考下
    2016-05-05
  • Nginx更換ssl證書(shū)不生效的問(wèn)題解決

    Nginx更換ssl證書(shū)不生效的問(wèn)題解決

    本文主要介紹了Nginx配置中更換SSL證書(shū)后,新證書(shū)不生效的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Nginx請(qǐng)求訪問(wèn)控制實(shí)現(xiàn)方案

    Nginx請(qǐng)求訪問(wèn)控制實(shí)現(xiàn)方案

    Nginx并不直接實(shí)現(xiàn)漏桶算法或令牌桶算法,但這些算法在控制網(wǎng)絡(luò)流量和請(qǐng)求速率方面非常有用,這些算法通常在網(wǎng)絡(luò)編程、API服務(wù)、負(fù)載均衡等領(lǐng)域中使用,以確保系統(tǒng)的穩(wěn)定性和性能,這篇文章給大家介紹Nginx請(qǐng)求訪問(wèn)控制實(shí)現(xiàn)方案,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Centos 6.5 64位中Nginx詳細(xì)安裝部署教程

    Centos 6.5 64位中Nginx詳細(xì)安裝部署教程

    Nginx是一個(gè)web服務(wù)器也可以用來(lái)做負(fù)載均衡及反向代理使用,目前使用最多的就是負(fù)載均衡,具體簡(jiǎn)介我就不介紹了百度一下有很多,下面直接進(jìn)入安裝步驟,需要的朋友可以參考下
    2017-08-08
  • Nginx+SSL+Node.js運(yùn)行環(huán)境配置教程

    Nginx+SSL+Node.js運(yùn)行環(huán)境配置教程

    這篇文章主要介紹了Nginx+SSL+Node.js運(yùn)行環(huán)境配置教程,本文用反向代理的方式代理基于Node.js的Web應(yīng)用,需要的朋友可以參考下
    2014-09-09

最新評(píng)論

建始县| 同仁县| 翼城县| 新兴县| 新余市| 陵水| 衡山县| 贵定县| 炉霍县| 青海省| 通江县| 郁南县| 汤阴县| 伊春市| 镇远县| 岗巴县| 乐东| 新丰县| 资源县| 临漳县| 临江市| 湘阴县| 江华| 开平市| 阿克苏市| 纳雍县| 金寨县| 冀州市| 邹平县| 申扎县| 乐山市| 永寿县| 武冈市| 南乐县| 扶余县| 文成县| 鸡东县| 安徽省| 义马市| 三河市| 武城县|