Nginx-location配置

Nginx的location匹配規則:nginx

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

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

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

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

^~  表示普通字符匹配,若是該選項匹配,只匹配該選項,不匹配別的選項,通常用來匹配目錄測試

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

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

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


location匹配的優先級:
get

=  精確匹配優先級最大,若是發現精確匹配,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

相關文章
相關標籤/搜索