一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - Nginx服務器中的location配置詳解

Nginx服務器中的location配置詳解

2019-11-01 15:44低調小一 Nginx

這篇文章主要介紹了Nginx服務器中的location配置詳解,包括location的匹配順序等基本概念,需要的朋友可以參考下

語法
location  [=|~|~*|^~] /uri/  {...}

規則
= : 表示精確的URI匹配(有興趣的同學可以看一下url和uri的區別)
~: 表示區分大小寫的正則匹配
~*:表示不區分大小寫的正則匹配
!~ && !~*:表示區分大小寫不匹配的正則和不區分大小寫的不匹配的正則
/:通用匹配,任何請求都會匹配到

location匹配目標
location匹配測試只使用請求URI的部分,而不使用參數部分。(原因:參數的寫法太多,無法精確匹配)

location匹配順序
多個location配置的前提下,location的匹配順序(未驗證,嘿嘿,google上搜的)
1.首先匹配=
2.其次匹配^~
3.再其次按照配置文件的順序進行正則匹配、
4.最后是交給/進行通用匹配
注意:
當有匹配成功時,立刻停止匹配,按照當前匹配規則處理請求

演示實例

nginx 配置文件,自下到上分為三種層次分明的結構:
 |    http block        the protocol level
 |    server block        the server level
 V    location block        the requested URI

Nginx 允許用戶定義 Location block ,并指定一個匹配模式(pattern)匹配特定的 URI。除了簡單的字符串(比如文件系統路徑),還允許使用更為復雜的匹配模式(pattern)。
Location block 的基本語法形式是:

?
1
location [=|~|~*|^~|@] pattern { ... }

[=|~|~*|^~|@] 被稱作 location modifier ,這會定義 Nginx 如何去匹配其后的 pattern ,以及該 pattern 的最基本的屬性(簡單字符串或正則表達式)。

關于 location modifier

1. =

這會完全匹配指定的 pattern ,且這里的 pattern 被限制成簡單的字符串,也就是說這里不能使用正則表達式。
Example:

?
1
2
3
4
5
6
server {
  server_name m.ythuaji.com.cn;
  location = /abcd {
  […]
  }
}

匹配情況:
    http://m.ythuaji.com.cn/abcd        # 正好完全匹配
    http://m.ythuaji.com.cn/ABCD        # 如果運行 Nginx server 的系統本身對大小寫不敏感,比如 Windows ,那么也匹配
    http://m.ythuaji.com.cn/abcd?param1?m2    # 忽略查詢串參數(query string arguments),這里就是 /abcd 后面的 ?param1?m2
    http://m.ythuaji.com.cn/abcd/    # 不匹配,因為末尾存在反斜杠(trailing slash),Nginx 不認為這種情況是完全匹配
    http://m.ythuaji.com.cn/abcde    # 不匹配,因為不是完全匹配

2. (None)
可以不寫 location modifier ,Nginx 仍然能去匹配 pattern 。這種情況下,匹配那些以指定的 patern 開頭的 URI,注意這里的 URI 只能是普通字符串,不能使用正則表達式。
Example:

?
1
2
3
4
5
6
server {
  server_name website.com;
  location /abcd {
  […]
  }
}

匹配情況:
    http://m.ythuaji.com.cn/abcd        # 正好完全匹配
    http://m.ythuaji.com.cn/ABCD        # 如果運行 Nginx server 的系統本身對大小寫不敏感,比如 Windows ,那么也匹配
    http://m.ythuaji.com.cn/abcd?param1?m2    # 忽略查詢串參數(query string arguments),這里就是 /abcd 后面的 ?param1?m2
    http://m.ythuaji.com.cn/abcd/    # 末尾存在反斜杠(trailing slash)也屬于匹配范圍內
    http://m.ythuaji.com.cn/abcde    # 仍然匹配,因為 URI 是以 pattern 開頭的

3. ~
這個 location modifier 對大小寫敏感,且 pattern 須是正則表達式

?
1
2
3
4
5
6
7
Example:
server {
  server_name m.ythuaji.com.cn;
  location ~ ^/abcd$ {
  […]
  }
}

匹配情況:
    http://m.ythuaji.com.cn/abcd        # 完全匹配
    http://m.ythuaji.com.cn/ABCD        # 不匹配,~ 對大小寫是敏感的
    http://m.ythuaji.com.cn/abcd?param1?m2    # 忽略查詢串參數(query string arguments),這里就是 /abcd 后面的 ?param1?m2
    http://m.ythuaji.com.cn/abcd/    # 不匹配,因為末尾存在反斜杠(trailing slash),并不匹配正則表達式 ^/abcd$
    http://m.ythuaji.com.cn/abcde    # 不匹配正則表達式 ^/abcd$
注意:對于一些對大小寫不敏感的系統,比如 Windows ,~ 和 ~* 都是不起作用的,這主要是操作系統的原因。

4. ~*
與 ~ 類似,但這個 location modifier 不區分大小寫,pattern 須是正則表達式
Example:

?
1
2
3
4
5
6
server {
  server_name website.com;
  location ~* ^/abcd$ {
  […]
  }
}

匹配情況:
    http://m.ythuaji.com.cn/abcd        # 完全匹配
    http://m.ythuaji.com.cn/ABCD        # 匹配,這就是它不區分大小寫的特性
    http://m.ythuaji.com.cn/abcd?param1?m2    # 忽略查詢串參數(query string arguments),這里就是 /abcd 后面的 ?param1?m2
    http://m.ythuaji.com.cn/abcd/    # 不匹配,因為末尾存在反斜杠(trailing slash),并不匹配正則表達式 ^/abcd$
    http://m.ythuaji.com.cn/abcde    # 不匹配正則表達式 ^/abcd$

5. ^~
匹配情況類似 2. (None) 的情況,以指定匹配模式開頭的 URI 被匹配,不同的是,一旦匹配成功,那么 Nginx 就停止去尋找其他的 Location 塊進行匹配了(與 Location 匹配順序有關)

6. @
用于定義一個 Location 塊,且該塊不能被外部 Client 所訪問,只能被 Nginx 內部配置指令所訪問,比如 try_files or error_page

演示實例

Nginx服務器中的location配置詳解

產生的效果如下:
訪問根目錄/,匹配到location /
訪問除hello.php之外的其它php程序,匹配到location ~ \.php$,并且用php5-fpm去運行
訪問hello.php,匹配到location = /hello.php,訪問被重定向到好聯系官網

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美又硬又粗又长又大 | 精品免费看 | 欧美无专区| 性色AV乱码一区二区三区视频 | 国产香蕉97碰碰在线视频 | 韩国美女豪爽一级毛片 | 国产剧情一区二区三区 | 人妖女天堂视频在线96 | 国产1区精品 | 四虎最新免费观看网址 | 美女露尿口 | 亚飞与亚基国语1080p在线观看 | 久九九精品免费视频 | 国产拍拍拍免费专区在线观看 | 免费尤物视频 | 精品国语国产在线对白 | free chinese 国产精品 | 嗯啊好爽视频 | 欧美综合精品一区二区三区 | 亚洲欧美日韩国产精品一区 | 久久青草免费91线频观看站街 | 日本ssswww大学生 | 美女用手扒自己下部 | 好男人影视社区www在线观看 | 日本xxxx69hd | 驯服有夫之妇HD中字日本 | xxxx野外性xxxx| 1717she精品视频在线观看 | 青青草原手机在线视频 | 西野翔全部作品在线观看 | 成年人在线播放视频 | 我们中文在线观看免费完整版 | 国产这里有精品 | nhdta系列媚药系列 | jux629三浦理惠子在线播放 | 国产成人咱精品视频免费网站 | 国产国语在线播放视频 | 四虎e234hcom| 女同性互吃奶乳免费视频 | 日韩大片免费看 | 亚洲激情自拍偷拍 |