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

nginx?location指令(匹配順序匹配沖突)實戰(zhàn)示例詳解

 更新時間:2023年06月21日 11:37:54   作者:開發(fā)運維玄德公  
這篇文章主要介紹了nginx?location指令(實戰(zhàn)示例匹配順序匹配沖突)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1. 對url的匹配

1.1 默認匹配

  • 語法示例
    location /crow/ {
       return  501 "通用匹配\n";
    }

1.2 精確匹配( = )

  • 語法示例
    location = /crow/ {
       return  501 "精確匹配\n";
    }

1.3 正則,區(qū)分大小寫 ( ~ )

  • 語法示例
    location ~ /crow/.*\.md {
       return  501 "正則表達式,區(qū)分大小寫\n";
    }

1.4 正則表達式,不區(qū)分大小寫 ( ~* )

  • 語法示例
    location ~* /crow/.*\.md {
       return  501 "正則表達式,不區(qū)分大小寫\n";
    }

2. 匹配順序

  • 精確匹配(=
  • 字串匹配(^~
  • 正則匹配(~~*
  • 默認匹配()

2.1 示例(精確匹配最高)

  • 配置文件內(nèi)容:
server {
    listen    1840;
    root   /usr/share/nginx/html;
    location / {
        index  index.html index.php index.htm;
    }
    location /crow/  {
       return  501 "通用匹配\n";
    }
    location = /crow/test.md {
       return  501 "精確匹配\n";
    }
    location ~ /crow/.*\.md {
       return  501 "正則表達式,區(qū)分大小寫\n";
    }
    location ~* /crow/.*\.md {
       return  501 "正則表達式,不區(qū)分大小寫\n";
    }
    location ^~ /crow/test.md {
       return  501 "字串匹配\n";
    }
}
  • 訪問測試
[root@liubei nginx-crow-test]# curl http://localhost:1840/crow/test.md
精確匹配

可見精確匹配被匹配到。

下邊我們?nèi)サ艟_匹配:

2.2 示例(字串匹配次之)

  • 配置文件內(nèi)容:
server {
    listen    1840;
    root   /usr/share/nginx/html;
    location / {
        index  index.html index.php index.htm;
    }
    location /crow/  {
       return  501 "通用匹配\n";
    }
    #location = /crow/test.md {
    #   return  501 "精確匹配\n";
    #}
    location ~ /crow/.*\.md {
       return  501 "正則表達式,區(qū)分大小寫\n";
    }
    location ~* /crow/.*\.md {
       return  501 "正則表達式,不區(qū)分大小寫\n";
    }
    location ^~ /crow/test.md {
       return  501 "字串匹配\n";
    }
}
  • 訪問測試

如下可見,還剩 字串匹配、正則匹配、通用匹配,結(jié)果匹配到了 字串匹配

[root@liubei nginx-crow-test]# curl http://localhost:1840/crow/test.md
字串匹配

2.3 示例(正則匹間配高于通用匹配)

  • 配置文件
server {
    listen    1840;
    root   /usr/share/nginx/html;
    location / {
        index  index.html index.php index.htm;
    }
    location /crow/  {
       return  501 "通用匹配\n";
    }
    #location = /crow/test.md {
    #   return  501 "精確匹配\n";
    #}
    location ~ /crow/.*\.md {
       return  501 "正則表達式,區(qū)分大小寫\n";
    }
    location ~* /crow/.*\.md {
       return  501 "正則表達式,不區(qū)分大小寫\n";
    }
    #location ^~ /crow/test.md {
    #   return  501 "字串匹配\n";
    #}
}
  • 訪問測試
[root@liubei nginx-crow-test]# curl http://localhost:1840/crow/test.md
正則表達式,區(qū)分大小寫

2.4 示例(正則表達式間前邊的為準)

上例中我們看到:~在前邊,因此先匹配了 ~。如果我們把~~*換個位置

  • 配置文件
server {
    listen    1840;
    root   /usr/share/nginx/html;
    location / {
        index  index.html index.php index.htm;
    }
    location /crow/  {
       return  501 "通用匹配\n";
    }
    location ~* /crow/.*\.md {
       return  501 "正則表達式,不區(qū)分大小寫\n";
    }
    location ~ /crow/.*\.md {
       return  501 "正則表達式,區(qū)分大小寫\n";
    }
}
  • 訪問測試
[root@liubei nginx-crow-test]# curl http://localhost:1840/crow/test.md
正則表達式,不區(qū)分大小寫

2.5 示例(通用匹配兜底)

配置文件

我們還是將所有匹配都寫上

server {
    listen    1840;
    root   /usr/share/nginx/html;
    location / {
        index  index.html index.php index.htm;
    }
    location /crow/  {
       return  501 "通用匹配\n";
    }
    location = /crow/test.md {
       return  501 "精確匹配\n";
    }
    location ~ /crow/.*\.md {
       return  501 "正則表達式,區(qū)分大小寫\n";
    }
    location ~* /crow/.*\.md {
       return  501 "正則表達式,不區(qū)分大小寫\n";
    }
    location ^~ /crow/test.md {
       return  501 "字串匹配\n";
    }
}
  • 訪問測試
[root@liubei nginx-crow-test]# curl http://localhost:1840/crow/test.txt
通用匹配

3. 匹配間的沖突

3.1 通用匹配 VS 字串匹配

通用匹配字串匹配相同時,啟動報錯

  • 配置文件
    location /crow/test.md {
       return  501 "通用匹配\n";
    }
    location ^~ /crow/test.md {
       return  501 "字串匹配\n";
    }
  • 啟動報錯如下:
nginx-crow-test | nginx: [emerg] duplicate location "/crow/test.md" in /etc/nginx/conf.d/default.conf:45

以上就是nginx location指令(實戰(zhàn)示例匹配順序匹配沖突)使用詳解的詳細內(nèi)容,更多關(guān)于nginx location指令的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • nginx反向代理導致session失效的問題解決

    nginx反向代理導致session失效的問題解決

    這篇文章主要介紹了nginx反向代理導致session失效的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Debian下搭建Nginx和Tomcat服務器實現(xiàn)負載均衡的方案

    Debian下搭建Nginx和Tomcat服務器實現(xiàn)負載均衡的方案

    這篇文章主要介紹了Debian下搭建Nginx和Tomcat服務器實現(xiàn)負載均衡的方案,其主要思想依然是動靜分離并且以Nginx來進行反向代理這樣的路子,需要的朋友可以參考下
    2015-12-12
  • Nginx服務器中配置GeoIP模塊來攔截指定國家IP

    Nginx服務器中配置GeoIP模塊來攔截指定國家IP

    Nginx中自帶GeoIP模塊可以屏蔽指定IP的請求,只不過默認沒有被編譯,打開以后我們只要再下載一個IP規(guī)則就行,Nginx服務器中配置GeoIP模塊來攔截指定國家IP
    2016-06-06
  • nginx處理http請求實例詳解

    nginx處理http請求實例詳解

    這篇文章主要介紹了nginx處理http請求實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Nginx部署項目上傳文件報錯413的解決方法

    Nginx部署項目上傳文件報錯413的解決方法

    本文主要介紹了Nginx部署項目上傳文件報錯413的解決方法,報錯413是因為Nginx對上傳大小做了限制,所以我們需要配置文件,下面就來解決這個問題,感興趣的可以了解一下
    2024-03-03
  • 如何配置Nginx每個進程最多打開的文件數(shù)量

    如何配置Nginx每個進程最多打開的文件數(shù)量

    這篇文章主要介紹了配置Nginx每個進程最多打開的文件數(shù)量,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Nginx進程殺不完的解決方法

    Nginx進程殺不完的解決方法

    這篇文章主要給大家介紹了Nginx進程殺不完的解決方法,文中通過圖文結(jié)合的方式給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,,需要的朋友可以參考下
    2023-12-12
  • nginx:413 Request Entity Too Large的處理辦法--修改 PHP上傳文件大小

    nginx:413 Request Entity Too Large的處理辦法--修改 PHP上傳文件大小

    在用 phpMyAdmin 進行 sql 數(shù)據(jù)庫導入的時候,經(jīng)常需要上傳比較大的 sql 數(shù)據(jù)文件,而這時會常碰見 nginx報錯:413 Request Entity Too Large。解決此問題,根據(jù)上傳數(shù)據(jù)文件的大小進行修改處理
    2014-06-06
  • Nginx安裝SSl模板異常處理方式

    Nginx安裝SSl模板異常處理方式

    文章介紹了在Linux環(huán)境下配置Nginx支持SSL時遇到的問題及解決方法,主要步驟包括:安裝SSL模塊、解決缺少OpenSSL包的問題,并通過下載和編譯源碼的方式解決SSL模塊安裝失敗的問題
    2025-02-02
  • 解決Nginx配置靜態(tài)資源文件404 Not Found問題

    解決Nginx配置靜態(tài)資源文件404 Not Found問題

    在使用Nginx作為靜態(tài)資源服務器時,如果配置了根目錄root導致404錯誤,而使用前綴URL配置alias則需要正確處理目錄路徑,使用alias時要確保目錄名后加‘/’,并且在需要時使用root和alias配置,本文介紹Nginx配置靜態(tài)資源文件404 Not Found問題解決方法,感興趣的朋友一起看看吧
    2025-03-03

最新評論