概述
理论部分
文字释义匹配规则如下:
略述:
1、nginx服务器首先在server块的多个location块中搜索是否有标准的uri和请求字符串匹配。如果有多个标准uri可以匹配,就匹配其中匹配度最高的一个location。
2、然后,nginx在使用location块中,正则uri和请求字符串,进行匹配。如果正则匹配成功,则结束匹配,并使用这个location处理请求;如果正则匹配失败,则使用标准uri中,匹配度最高的location。
详细:
1、如果有精确匹配,会先进行精确匹配,匹配成功,立刻返回结果。
2、普通匹配与顺序无关,因为按照匹配的长短来取匹配结果。
3、正则匹配与顺序有关,因为是从上往下匹配。(首先匹配,就结束解析过程)
4、在location中,有一种统配的location,所有的请求,都可以匹配
标识符匹配规则如下:
(location = uri {}) > (location 完整路径 {}) > (location ^~ 路径 {}) > (location ~,~* 正则顺序 {}) > (location 部分起始路径 {}) > (location / {})
操作案例部分
首先,我们把所有的规则写入nginx.conf,并重新读取nginx.conf然后开始实验,这次仍然借助echo-nginx-module进行,(echo-nginx-module配置过程向右看?echo-nginx-module的安装、配置、使用)
location = /php.php { echo '精确匹配'; } location ^~ /php/ { echo '标准匹配,仅前缀'; } location ~ .(php) { echo '区分大小写,小写'; } location ~ .(pHp) { echo '区分大小写,大写'; } location ~* .(php)$ { echo '不区分大小写';
[root@www quail]# curl 192.168.249.132/php.php 精确匹配 [root@www quail]# curl 192.168.249.132/php/php.php 标准匹配,仅前缀 [root@www quail]# curl 192.168.249.132/pp.php 区分大小写,小写 [root@www quail]# curl 192.168.249.132/pp.pHp 区分大小写,大写 [root@www quail]# curl 192.168.249.132/php.pHP 不区分大小写
最后
以上就是文静大白为你收集整理的Nginx Location匹配顺序理论部分操作案例部分的全部内容,希望文章能够帮你解决Nginx Location匹配顺序理论部分操作案例部分所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复