经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Nginx » 查看文章
Nginx Location匹配顺序
来源:cnblogs  作者:菜鹌鹑  时间:2019/7/15 8:41:11  对本文有异议

理论部分

文字释义匹配规则如下:

略述:

1、nginx服务器首先在server块的多个location块中搜索是否有标准的uri和请求字符串匹配。如果有多个标准uri可以匹配,就匹配其中匹配度最高的一个location。

2、然后,nginx在使用location块中,正则uri和请求字符串,进行匹配。如果正则匹配成功,则结束匹配,并使用这个location处理请求;如果正则匹配失败,则使用标准uri中,匹配度最高的location。

详细:

1、如果有精确匹配,会先进行精确匹配,匹配成功,立刻返回结果。

2、普通匹配与顺序无关,因为按照匹配的长短来取匹配结果。

3、正则匹配与顺序有关,因为是从上往下匹配。(首先匹配,就结束解析过程)

4、在location中,有一种统配的location,所有的请求,都可以匹配

标识符匹配规则如下:

  1. (location = uri {}) > (location 完整路径 {}) > (location ^~ 路径 {}) > (location ~,~* 正则顺序 {}) > (location 部分起始路径 {}) > (location / {})

操作案例部分

首先,我们把所有的规则写入nginx.conf,并重新读取nginx.conf然后开始实验,这次仍然借助echo-nginx-module进行,(echo-nginx-module配置过程向右看??echo-nginx-module的安装、配置、使用

  1. location = /php.php {
  2. echo '精确匹配';
  3. }
  4. location ^~ /php/ {
  5. echo '标准匹配,仅前缀';
  6. }
  7. location ~ \.(php) {
  8. echo '区分大小写,小写';
  9. }
  10. location ~ \.(pHp) {
  11. echo '区分大小写,大写';
  12. }
  13. location ~* \.(php)$ {
  14. echo '不区分大小写';
  1. [root@www quail]# curl 192.168.249.132/php.php
  2. 精确匹配
  3. [root@www quail]# curl 192.168.249.132/php/php.php
  4. 标准匹配,仅前缀
  5. [root@www quail]# curl 192.168.249.132/pp.php
  6. 区分大小写,小写
  7. [root@www quail]# curl 192.168.249.132/pp.pHp
  8. 区分大小写,大写
  9. [root@www quail]# curl 192.168.249.132/php.pHP
  10. 不区分大小写

 

原文链接:http://www.cnblogs.com/quail2333/p/11181747.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号