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

相关文章
相关标签/搜索