1、语法规则
语法规则:location[=|~|^~*|^~]/uri/{… }
表示精确匹配,这个优先级也是最高的 ^~ 表示 uri 以某个常规字符串开头,理解为匹配 url 路径即可。 nginx 不对 url 做编码,因此请求为 /image/20%/aa,可以被规则^~ /image/ /aa 匹配到(注意是空格)。 ~ 表示区分大小写的正则匹配 ~* 表示不区分大小写的正则匹配(和上面的唯一区别就是大小写) !~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则 / 通用匹配,任何请求都会匹配到,默认匹配.2、匹配规则
首先匹配 =,其次匹配~~,其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
例如 下面的配置规则如下:
location = / { echo "=/"; } location = /nginx { echo "nginx"; } location ~ \.(gif|jpg|png|js|css)$ { echo "image/jpg/png"; } location ~* \.png$ { echo "png"; } location ^~ /image/ { echo "image"; } 为了验证使用哪个规则, 我们使用linux 的curl 命令,以访问 http://test.abc.com 的资源为例 当执行curl http://test.abc.com 返回=/。 当执行curl http://test.abc.com/nginx 返回nginx 当执行 当执行curl http://test.abc.com/xxx/122.PNG 返回png。当执行curl http://test.abc.com/xxx/122.png 返回image/jpg/png, 当执行curl http://test.abc.com/image/122.png 返回 image 标签:abc,匹配,image,nginx,localtion,test,png,location From: https://blog.csdn.net/fangxiang2008/article/details/136905036