Nginx Location指令URI匹配规则是什么


本篇内容主要讲解“Nginx Location指令URI匹配规则是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Nginx Location指令URI匹配规则是什么”吧!1、介绍
location指令是http模块当中最核心的一项配置,根据预先定义的url匹配规则来接收用户发送的请求,根据匹配结果,将请求转发到后台服务器、非法的请求直接拒绝并返回403、404、500错误处理等。2、location指令语法
loc 香港云主机ation [=|~|~*|^~|@] /uri/ { … } 或 location @name { … }3、uri匹配模式
location指令分为两种匹配模式:
1> 普通字符串匹配:以=开头或开头无引导字符(~)的规则
2> 正则匹配:以~或~*开头表示正则匹配,~*表示正则不区分大小写4、location uri匹配规则
当nginx收到一个请求后,会截取请求的uri部份,去搜索所有location指令中定义的uri匹配模式。在server模块中可以定义多个location指令来匹配不同的url请求,多个不同location配置的uri匹配模式,总体的匹配原则是:先匹配普通字符串模式,再匹配正则模式。只识别uri部份,例如请求为:/test/abc/user.do?name=xxxx
一个请求过来后,nginx匹配这个请求的流程如下:
1> 先查找是否有=开头的精确匹配,如:location = /test/abc/user.do { … }
2> 再查找普通匹配,以 最大前缀 为原则,如有以下两个location,则会匹配后一项
* location /test/ { … }
* location /test/abc { … }
3> 匹配到一个普通格式后,搜索并未结束,而是暂存当前匹配的结果,并继续搜索正则匹配模式
4> 所有正则匹配模式location中找到第一个匹配项后,就以此项为最终匹配结果
所以正则匹配项匹配规则,受定义的前后顺序影响,但普通匹配模式不会
5> 如果未找到正则匹配项,则以3中缓存的结果为最终匹配结果
6> 如果一个匹配都没搜索到,则返回4045、精确匹配与模糊匹配差别
location =/ { … } 与 location / { … } 的差别:
* 前一个是精确匹配,只响应/请求,所有/xxx或/xxx/xxxx类的请求都不会以前缀的形式匹配到它
* 后一个是只要以 / 为前缀的请求都会被匹配到。如:/abc , /test/abc, /test/abc/aaaa6、正则与非正则匹配
1> location ~ /test/.+.jsp$ { … } :正则匹配,支持标准的正则表达式语法。
2> location ^~ / { … } : ^~意思是关闭正则匹配,当搜索到这个普通匹配模式后,将不再继续搜索正则匹配模式。到此,相信大家对“Nginx Location指令URI匹配规则是什么”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: Nginx如何限制http资源请求

本篇内容主要讲解“Nginx如何限制http资源请求”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Nginx如何限制http资源请求”吧!前置条件:nginx 需要有 ngx_http_limit_conn_mod…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/03 22:39
下一篇 07/03 22:39

相关推荐