激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

服務器之家 - 服務器技術 - Nginx - nginx配置location方法總結

nginx配置location方法總結

2020-01-03 14:59Hello-YOYO Nginx

這篇文章主要介紹了nginx配置location方法總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

location匹配順序

1."="前綴指令匹配,如果匹配成功,則停止其他匹配
2.普通字符串指令匹配,順序是從長到短,匹配成功的location如果使用^~,則停止其他匹配(正則匹配)
3.正則表達式指令匹配,按照配置文件里的順序,成功就停止其他匹配
4.如果第三步中有匹配成功,則使用該結果,否則使用第二步結果

注意點

1.匹配的順序是先匹配普通字符串,然后再匹配正則表達式。另外普通字符串匹配順序是根據配置中字符長度從長到短,也就是說使用普通字符串配置的location順序是無關緊要的,反正最后nginx會根據配置的長短來進行匹配,但是需要注意的是正則表達式按照配置文件里的順序測試。找到第一個比配的正則表達式將停止搜索。

2.一般情況下,匹配成功了普通字符串location后還會進行正則表達式location匹配。有兩種方法改變這種行為,其一就是使用“=”前綴,這時執行的是嚴格匹配,并且匹配成功后立即停止其他匹配,同時處理這個請求;另外一種就是使用“^~”前綴,如果把這個前綴用于一個常規字符串那么告訴nginx 如果路徑匹配那么不測試正則表達式。

匹配模式及順序

location = /uri    =開頭表示精確匹配,只有完全匹配上才能生效。

location ^~ /uri   ^~ 開頭對URL路徑進行前綴匹配,并且在正則之前。

location ~ pattern  ~開頭表示區分大小寫的正則匹配。

location ~* pattern  ~*開頭表示不區分大小寫的正則匹配。

location /uri     不帶任何修飾符,也表示前綴匹配,但是在正則匹配之后。

location /      通用匹配,任何未匹配到其它location的請求都會匹配到,相當于switch中的default。 

實驗案例

測試"^~"和"~",nginx配置如下。瀏覽器輸入http://localhost/helloworld/test,返回601。如將#1注釋,#2打開,瀏覽器輸入http://localhost/helloworld/test,返回603。注:#1和#2不能同時打開,如同時打開,啟動nginx會報nginx: [emerg] duplicate location "/helloworld"...,因為這兩個都是普通字符串。

?
1
2
3
4
5
6
7
8
9
10
11
location ^~ /helloworld #1
 return 601;
}
  
#location /helloworld {  #2
# return 602;
#}
 
location ~ /helloworld {
 return 603;
}

測試普通字符串的長短(普通字符串的匹配與順序無關,與長短有關)。瀏覽器輸入http://localhost/helloworld/test/a.html,返回601。瀏覽器輸入http://localhost/helloworld/a.html,返回602。

?
1
2
3
4
5
6
7
location /helloworld/test/ #1
 return 601;
}
  
location /helloworld/ {    #2
 return 602;
}

測試正則表達式的順序(正則匹配與順序相關)。瀏覽器輸入http://localhost/helloworld/test/a.html,返回602;將#2和#3調換順序,瀏覽器輸入http://localhost/helloworld/test/a.html,返回603

?
1
2
3
4
5
6
7
8
9
10
11
location /helloworld/test/ #1
 return 601;
}
 
location ~ /helloworld {   #2
 return 602;
}
  
location ~ /helloworld/test #3
 return 603;
}

所以實際使用中,個人覺得至少有三個匹配規則定義,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#直接匹配網站根,通過域名訪問網站首頁比較頻繁,使用這個會加速處理,官網如是說。
#這里是直接轉發給后端應用服務器了,也可以是一個靜態首頁
# 第一個必選規則
location = / {
 proxy_pass http://tomcat:8080/index
}
 
# 第二個必選規則是處理靜態文件請求,這是nginx作為http服務器的強項
# 有兩種配置模式,目錄匹配或后綴匹配,任選其一或搭配使用
location ^~ /static/ {
 root /webroot/static/;
}
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
 root /webroot/res/;
}
 
#第三個規則就是通用規則,用來轉發動態請求到后端應用服務器
#非靜態文件請求就默認是動態請求,自己根據實際把握
#畢竟目前的一些框架的流行,帶.php,.jsp后綴的情況很少了
location / {
 proxy_pass http://tomcat:8080/
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/coder-yoyo/p/6346595.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本在线精品视频 | 视频一区二区在线观看 | 国产二区三区在线播放 | 国产喷白浆10p | 欧美日韩亚洲视频 | 久久av一区二区 | 亚洲一区在线视频观看 | 永久在线观看电影 | hd性videos意大利复古 | 性插视频| 亚洲国产精品99 | 成人一区二区三区在线 | 天天草天天干天天射 | 一区二区三区在线观看免费 | 国产理论视频在线观看 | 亚洲自拍第二页 | 欧美成人精品一区二区三区 | 夜间福利视频 | 久久狂草| 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 在线a毛片免费视频观看 | 精品久久久久久久久久久久久久 | 欧美xxxxx视频 | 欧美日韩网站在线观看 | 欧美视频一二三区 | 秋霞a级毛片在线看 | 亚洲日本欧美 | 亚洲第一成人在线视频 | 一边吃奶一边插下面 | 在线成人免费av | 中文字幕在线永久 | 草草视频在线 | 羞羞视频入口 | 成年免费大片黄在线观看岛国 | 久久免费观看一级毛片 | 午夜视频你懂的 | 中文字幕在线观看亚洲 | 国产免费专区 | 在线观看中文字幕国产 | 毛片一级片 | 91懂色|