nginx location 指令匹配顺序

来源:互联网 发布:知乎 小山庆一郎 编辑:程序博客网 时间:2024/05/16 09:50

[导读] location指令是server段中的一个指令,可以对不同路径或不同文件类型进行特殊处理。例如用的比较多的就是针对网站的静态内容设置缓存。由于一个server段中可以有多个location,而http请求最终只能使用其中的一个

location指令是server段中的一个指令,可以对不同路径或不同文件类型进行特殊处理。例如用的比较多的就是针对网站的静态内容设置缓存。由于一个server段中可以有多个location,而http请求最终只能使用其中的一个                                                                                                                                                                                     

location 指令语法如下:

 代码如下复制代码

location [=|^~|~|!~|~*|!~*] uri {

}

上述配置中[]内为可选配置,但只能使用其中一个。关于具体含义,可以参考:nginx 匹配操作符。uri可以是普通字符串或正则表达式。

匹配的顺序是先匹配普通字符串,然后再匹配正则表达式。另外普通字符串匹配顺序是根据配置中字符长度从长到短,也就是说使用普通字符串配置的location顺序是无关紧要的,反正最后nginx会根据配置的长短来进行匹配,但是需要注意的是正则表达式按照配置文件里的顺序测试。找到第一个比配的正则表达式将停止搜索。

一般情况下,匹配成功了普通字符串location后还会进行正则表达式location匹配。有两种方法改变这种行为,其一就是使用“=”前缀,这时执行的是严格匹配,并且匹配成功后立即停止其他匹配,同时处理这个请求;另外一种就是使用“^~”前缀,如果把这个前缀用于一个常规字符串那么告诉nginx 如果路径匹配那么不测试正则表达式。

总结下来location指令的匹配顺序为:


1、“=”前缀指令匹配,如果匹配成功,停止其他匹配

2、普通字符串指令匹配,顺序是从长到短,匹配成功的location如果使用“^~”前缀,则停止其他匹配。

3、正则表达式指令匹配,按配置文件里的顺序,成功就停止其他匹配。

4、如果第3步中有匹配成功,则使用该结果,否则使用第二步中的匹配结果。 













































原文地址:http://www.php100.com/html/program/nginx/2013/0905/5543.html                                         

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三角插头坏了怎么办 移动硬盘读不出来怎么办 高压线断落地面怎么办 水冷螺杆机制热怎么办 施工升降机突然停电怎么办 高压锅煮饭响了怎么办 美的高压锅漏气怎么办 电压力锅盖漏气怎么办 电饭锅焦粘锅底怎么办 电饭锅煮焦了怎么办 九阳压力锅漏气怎么办 高压锅排气阀漏气怎么办 电锅漏电麻手怎么办 美的pss5032漏气怎么办 九阳电饭煲坏了怎么办 电饭煲外壳坏了怎么办 商用电饭锅粘锅怎么办 电饭锅煮饭会糊怎么办 美的电饭锅漏气怎么办 持续高烧不退怎么办 持续高温不退怎么办 宝宝高温不退怎么办 倒车镜镜片掉了怎么办 被硫酸呛到了怎么办 吃了核辐射食物怎么办 孕妇吃撑了怎么办 服装店衣服不好卖怎么办 服装店生意越来越差怎么办 卖衣服生意不好怎么办 开服装店没生意怎么办 家具喷漆有颗粒怎么办 老公吵架砸东西怎么办 夫妻吵架摔东西怎么办 老婆吵架摔东西怎么办 老公吵架摔手机怎么办 总是吵架感觉累怎么办 win10电脑忘记密码怎么办 win10系统忘记密码怎么办 出门没带身份证怎么办 扁桃体发炎老不好怎么办 蚊子飞进眼睛里怎么办