亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Nginx配置中if判斷的使用

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

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

if語法

if (表達式) {
    ...
}

表達式語法:

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

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

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

舉例說明

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

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

2、如果host不是jouypub.com,則301到jouypub.com中

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

3、如果請求類型不是POST則返回405

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

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

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

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

# 訪問 /test.html 時
location = /test.html {
    # 設置默認值為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

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

相關文章

  • linux設置Nginx自動重啟的實現(xiàn)

    linux設置Nginx自動重啟的實現(xiàn)

    在Linux系統(tǒng)中,設置Nginx服務開機自動啟動及意外停止后自動重啟是保持服務穩(wěn)定運行的關鍵步驟,本文詳細介紹了如何使用systemctl命令和配置systemd服務文件來實現(xiàn)這一功能,感興趣的可以了解一下
    2024-09-09
  • Nginx禁止ip訪問或非法域名訪問

    Nginx禁止ip訪問或非法域名訪問

    這篇文章主要介紹了Nginx禁止ip訪問或非法域名訪問,需要的朋友可以參考下
    2022-04-04
  • 服務器使用Nginx部署Vue項目

    服務器使用Nginx部署Vue項目

    本文主要介紹了服務器使用Nginx部署Vue項目,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • nginx實現(xiàn)ip限流的具體示例

    nginx實現(xiàn)ip限流的具體示例

    限流的方式油很多種,本文主要介紹了nginx實現(xiàn)ip限流的具體示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • nginx服務器異常502 bad gateway原因排查

    nginx服務器異常502 bad gateway原因排查

    這篇文章主要介紹了nginx服務器異常502 bad gateway原因排查,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • nginx配置后訪問出現(xiàn)白屏的問題解決

    nginx配置后訪問出現(xiàn)白屏的問題解決

    本文主要介紹了nginx配置后訪問出現(xiàn)白屏
    2024-06-06
  • Nginx的一些基本功能極速入門

    Nginx的一些基本功能極速入門

    本文主要介紹一些Nginx的最基本功能以及簡單配置,但不包括Nginx的安裝部署以及實現(xiàn)原理。有興趣的可以了解一下。
    2016-12-12
  • 關于nginx負載均衡和反向代理的講解

    關于nginx負載均衡和反向代理的講解

    這篇文章主要介紹了nginx負載均衡和反向代理,具有很好的參考價值,希望對大家有所幫助,大家一起來看看吧
    2021-09-09
  • 詳解Nginx中的重定向功能

    詳解Nginx中的重定向功能

    這篇文章主要介紹了詳解Nginx中的重定向功能,Nginx是一款基于事務的無阻塞的高性能服務器,需要的朋友可以參考下
    2015-07-07
  • Nginx下讓WordPress支持固定鏈接的偽靜態(tài)規(guī)則

    Nginx下讓WordPress支持固定鏈接的偽靜態(tài)規(guī)則

    Nginx下讓WordPress支持固定鏈接的偽靜態(tài)規(guī)則,要讓nginx支持wordpress固定鏈接非常簡單,需要自己進行添加點配置代碼
    2013-02-02

最新評論