location匹配命令

1. “= ”,字面精确匹配, 如果匹配,则跳出匹配过程。(不再进行正则匹配)

2. “^~ ”,最大前缀匹配,如果匹配,则跳出匹配过程。(不再进行正则匹配)

3. 不带任何前缀:最大前缀匹配,举例如下:

location /  代表以"/"开头的搜索匹配, 再没有正则表达式匹配的情况下才进行这个匹配(优先级最低)

4. “~ ”,大小写相关的正则匹配

5. “~* ” , 大小写无关的正则匹配

6. “@”,  Named location 不是普通的location匹配,而是用于location内部重定向的变量。

其中: 1、2、3 三种情况属于 location using literal string, 即使用普通字符串的location匹配;

4、5       二种情况属于 location using regular expresstion,即使用正则表达式的location匹配;

location 匹配的优先级(与location在配置文件中的顺序无关)
= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。
普通字符匹配,正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配。
^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。
最后匹配理带有"~"和"~*"的指令,如果找到相应的匹配,则nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。

location  = / {
# 只匹配"/".
[ configuration A ]
}
location / {
# 匹配任何请求,因为所有请求都是以"/"开始
# 但是更长字符匹配或者正则表达式匹配会优先匹配
[ configuration B ]
}
location ^~ /images/ {
# 匹配任何以 /images/ 开始的请求,并停止匹配 其它location
[ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配以 gif, jpg, or jpeg结尾的请求.
# 但是所有 /images/ 目录的请求将由 [Configuration C]处理.
[ configuration D ]
}

请求URI例子:

  • / -> 符合configuration A
  • /documents/document.html -> 符合configuration B
  • /images/1.gif -> 符合configuration C
  • /documents/1.jpg ->符合 configuration D

最新文章

  1. JavaScript原型OOP——你上车了吗?
  2. Python~字典
  3. myeclipse tomcat内存溢出解决方法
  4. HDU 1429 (BFS+记忆化状压搜索)
  5. python 读写 Excel文件
  6. android常见错误-Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
  7. log4j学习日记-写入数据库
  8. ActiveMQ持久化消息(转)
  9. SQLite : 解决“找不到请求的 .Net Framework 数据提供程序。可能没有安装”的问题
  10. remote staspack
  11. UVa 10814 - Simplifying Fractions
  12. word-break: break-word; 文本溢出
  13. poj-3169Layout
  14. LAMP平台部署(转)
  15. 使用TT模板+mvc+wcf实现简单查询
  16. 【English】六、am,is,are 分别用在什么地方
  17. P1279 字串距离 dp 洛谷
  18. ASP.NET MVC5+EF6+EasyUI 后台管理系统(91)-EF 连接 MySql
  19. windows7安装docker
  20. java 字符与ASCII码互转

热门文章

  1. ubuntu 16.04 系统语言汉化
  2. iPhone SDK中多线程的使用方法以及注意事项
  3. [Spring Data MongoDB]学习笔记--MongoTemplate查询操作
  4. Problem H. Hotel in Ves Lagos
  5. vip视频网站爬虫
  6. 《UNIX网络编程》 -- 第五章
  7. spring web中完成单元测试
  8. 基于websocket搭建简易群聊
  9. python通过数据库连接池实现mysql数据库增删改查
  10. Codeforces 240F. TorCoder 线段树