Nginx高级应用之Location Url 配置(3)

正则匹配不适用最大匹配的原则,本质原因是因为正则一旦匹配了,就停止匹配其他location,因此正则匹配与配置的先后顺序有关。

location ~ /demo {        rewrite ^ ; } location ~ /demo/aa {        rewrite ^ ; }   -> 

nginx开始匹配location的模式,其中/demo已经匹配了这个地址,因此停止搜索匹配其他的location。

下面更改一下上述配置的先后顺序:

location ~ /demo/aa {        rewrite ^ ; } location ~ /demo {        rewrite ^ ; }

访问测试:

  -> 

由此可见,正则匹配与匹配最大长度无关,只与匹配的先后顺序有关。

归纳

通过上述两个模式的测试,我们对两个细节进行了倒序的推导。实际上使用记住两个细节会比较简单。判断同级的优先级归纳如下:

面对一个location,先判断是否是正则匹配,如果是正则匹配,遇到匹配的模式,则命中。如果不是正则,则把匹配的模式放到一边,继续往下阅读配置,阅读完毕所有的匹配模式,查看哪一种的匹配模式更长,则是最终命中的模式。

掌握nginx的location匹配优先级其实也不难,谨记一个原则两个细节,妈妈再也不用担心配错url啦。

总结

nginx的url配置是使用nginx最基本功能。nginx作为服务器,它可以接收请求,处理请求,都是基于客户端url访问。掌握url的配置要了解配置的几个指令(=^~)。熟悉每个匹配模式的特点。

了解模式之后,对于优先级的判定,只需记住一个大的规则和两个细节,就能从容的应对了。

掌握url的配置之后,更重要的是在location域中做请求的处理。比如常见的静态文件配置请求转发(rewrite),负载均衡等。

下面关于Nginx的文章您也可能喜欢,不妨参考下:

CentOS 7.2下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1 

Linux下编译安装Nginx 1.8.1 及配置

CentOS 6.4安装配置Nginx+Pcre+php-fpm

CentOS 7.2 源码安装Nginx

Nginx的500,502,504错误解决方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e07b747da3ba7a1f266f26cd5ab63e34.html