Nginx的location區塊的作用及設置

1.location的作用

    location指令的作用是根據用戶請求的URI來執行不同的應用,也就是根據用戶請求的網站URL進行匹配,匹配成功即進行相關的操作。

2.location的語法

    location的語法是:

  location  [ = | ~ | ~* | ^~ ]     uri          { .... }
# | 指令  | |     匹配標識    |  |匹配的網站網址|  |匹配URI之後要執行的配置段|

    其中"="的優先級爲最高,爲精確匹配;特殊字符"~"和"~*"的區別在於前者區分大小寫,後者不區分大小寫,他們還可以用邏輯操作符"!"來取反匹配;"^~"的意思是匹配之後不做正則表達式的檢查,就是不用匹配類似於"\.(gif|jpg|jpeg)$"的正則表達式了,也就是說"^~"後面跟了正則表達式也沒有用的。

    location的匹配示例:

location = / { [ configuration A ] }                     #用戶請求"/"時,匹配A,例如:www.pcm.com/
location / { [ configuration B ] }                       #當用戶請求"/index.html"時,匹配B,例如:www.pcm.com/index.html
location /documents/ { [ configuration C ] }             #當用戶請求"/documents/"時,匹配C,例如:www.pcm.com/documents/index.html      
location ^~ /images/ { [ configuration D ] }             #當用戶請求"/images/"時,匹配D,:www.pcm.com/images/1.jpg 
location ~* \.(gif|jpg|jpeg)$ { [ configuration E ] }    #當用戶請求".gif|.jpg|.jpeg"時,匹配E,例如:www.pcm.com/documents/1.jpg
                                                         #上面的反斜槓是轉義字符,$的意思是結尾

3.location實驗驗證

    我們在bbs的主機上做驗證,配置文件如下:

server {
 listen       80;
 server_name  bbs.pcm.com;
 root   html/bbs;
 location = / {
  return 401; 
 }
 location / {
  return 402; 
 }
 location /documents/ {
  return 403; 
 }
 location ^~/images/ {
  return 404; 
 }
 location ~* \.(gif|jpg|jpeg)$ {
  return 405; 
 }
}

    檢查語法,沒問題的話重新加載配置文件,平滑重啓nginx

image.png

    實驗的結果如下:

image.png

    從上圖可以驗證到結果沒問題的。其中location配對的方法是每條規則都去匹配,直到匹配到最爲匹配的結果才輸出;還有就是"/"這個是默認匹配的,如果都匹配不上的時候,最後就會默認匹配"/",所以輸出的結果爲402.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章