博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#location解读
阅读量:6256 次
发布时间:2019-06-22

本文共 1246 字,大约阅读时间需要 4 分钟。

hot3.png

#location解读 参考nginx的官方文档,让我们用一个例子解释location的用法:

location = / {     [ configuration A ]}location / {    [ configuration B ]}location /documents/ {    [ configuration C ]}location ^~ /images/ {    [ configuration D ]}location ~* \.(gif|jpg|jpeg)$ {     [ configuration E ] }

请求“/”匹配配置A, 请求“/index.html”匹配配置B, 请求“/documents/document.html”匹配配置C, 请求“/images/1.gif”匹配配置D, 请求“/documents/1.jpg”匹配配置E。 </br> /路径匹配</br> =严格匹配</br> ~和~* 模式匹配,URL可以使用正则表达式,~区分大小写,~不区分大小写</br> ^~ 模式匹配,不使用正则表达式。</br> (1)=号,表示严格匹配,如果找到就停止搜索,A属于严格匹配。</br> (2)常规字符匹配,BC属于常规匹配,匹配长度越长优先级越高所以/index.html匹配B。</br> (3)正则匹配,DE属于正则匹配,正则匹配的优先级高,如果一个url同时符合常规字符匹配和正则匹配,那么访问正则匹配,所以/ documents/1.jpg访问E。</br> 优先级 (= |^~) > (~) > (~|~) > (/|/dir/)</br>

####location 的执行逻辑跟 location 的编辑顺序无关。</br> 矫正:这句话不全对,“普通 location ”的匹配规则是“最大前缀”,因此“普 通 location ”的确与 location 编辑顺序无关;</br> 但是“正则 location ”的匹配规则是“顺序匹配,且只要匹配到第一个就停止后面的匹配”;“普通location ”与“正则 location ”之 间的匹配顺序是?先匹配普通 location ,再“考虑”匹配正则 location 。注意这里的“考 虑”是“可能”的意思,也就是说匹配完“普通 location ”后,有的时候需要继续匹配“正 则 location ”,有的时候则不需要继续匹配“正则 location ”。</br> 两种情况下,不需要继续 匹配正则 location :( 1 )当普通 location 前面指定了“ ^~ ”,特别告诉 Nginx 本条普 通 location 一旦匹配上,则不需要继续正则匹配;( 2 )当普通location 恰好严格匹配上 ,不是最大前缀匹配,则不再继续匹配正则

转载于:https://my.oschina.net/zhanggong/blog/849076

你可能感兴趣的文章
hdu 3449 Consumer (依赖01背包)
查看>>
c#public、private、protected、internal、protected internal
查看>>
hdoj-5099-Comparison of Android versions
查看>>
小波变换简单介绍(2)
查看>>
Dubbo -- 系统学习 笔记 -- 示例 -- 线程模型
查看>>
Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心
查看>>
使用C++实现学生管理系统
查看>>
BroadcastReceiver类
查看>>
大杂烩 -- 查找单向链表倒数第m个元素
查看>>
SQL笔记 --- 数据库设计步骤(转)
查看>>
cocos2d-iphone 动作
查看>>
[Preact] Integrate react-router with Preact
查看>>
函数指针的说明
查看>>
Python操作redis学习系列之(集合)set,redis set详解 (六)
查看>>
Linux时间子系统之二:表示时间的单位和结构
查看>>
leetcode 221: Maximal Square
查看>>
Oracle更新时间字段
查看>>
Android 四大组件学习之ContentProvider二
查看>>
使用jcaptcha插件生成验证码
查看>>
centos6.5 (linux) 禁用模块 IPV6模块的方法
查看>>