Nginx-location配置

Nginx的location匹配規則:

語法規則: location [=|~|~*|^~] /uri/ { … }

=   普通字符精確匹配,這個優先級也是最高的

~   波浪線表示執行一個正則匹配,區分大小寫

~*  表示執行一個正則匹配,不區分大小寫

^~  表示普通字符匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄

!~  表示區分大小寫不匹配的正則

!~* 表示不區分大小寫不匹配的正則

/   通用匹配,任何請求都會匹配到,默認匹配


location匹配的優先級:

=  精確匹配優先級最大,如果發現精確匹配,nginx會停止搜索其他匹配

^~ 其次匹配

其次是按文件中順序的正則匹配,最後是交給 / 通用匹配。當有匹配成功時候,停止匹配,按當前匹配規則處理請求。



例如:

Nginx配置文件:(省略了前面的常規配置)

   

server
    {
    listen 80;
    server_name 127.0.0.1;
    #默認匹配
    location / {
      echo "/";
    }
    #精確匹配
    location =/ {
      echo "=/";
    }
    #精確匹配
    location =/nginx {
      echo "=/nginx";
    }
    #以gif結尾的區分大小寫
    location ~ \.gif$ {
      echo "gif";
    }
    #以gif結尾的不區分大小寫
    location ~* \.gif$ {
      echo "GIF";
    }
    #匹配/static/路徑
    location ^~ /static/ {
      echo "static";
    }
    access_log logs/tomcat1_access.log;
    }

測試:

# curl 192.168.78.131
=/
# curl 192.168.78.131/nginx
=/nginx
# curl 192.168.78.131/123.gif
gif
# curl 192.168.78.131/123.GIF
GIF
# curl 192.168.78.131/static/123.gif
static


更多內容,請關注博主個人博客地址:http://www.whysha.com



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