一、 location 的匹配符

Syntax:

location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }

   

1.  语法格式:location [=|~|~*|^~|@]   /uri/ { … } ,
       依据不同的前缀“= ”,“^~ ”,“~ ”,“~* ”和不带任何前缀的(因为[ ] 表示可选,可以不要的),表达不同的含义, 
      简单的说尽管location 的/uri/ 配置一样,但前缀不一样,表达的是不同的指令含义。
        注意:查询字符串不在URI范围内。例如:/films.htm?fid=123 的URI 是/films.htm 。)

 
2.对这些不同前缀,分下类,就2 大类:
      正则location ,英文说法是location using regular expressions
      普通location ,英文说法是location using literal strings 。
      那么其中“~ ”和“~* ”前缀表示正则location ,“~ ”区分大小写,“~* ”不区分大小写;
      其他前缀(包括:“=”,“^~ ”和“@ ”)和   无任何前缀   都属于普通location 。
 
详细说明:

~       区分大小写匹配

~*     不区分大小写匹配

!~      区分大小写不匹配
        !~*    不区分大小写不匹配

^      以什么开头的匹配

$      以什么结尾的匹配

*      代表任意字符

     

     文件及目录匹配

-f和!-f用来判断是否存在文件

-d和!-d用来判断是否存在目录

-e和!-e用来判断是否存在文件或目录

-x和!-x用来判断文件是否可执行

 

3.匹配符优先级
1.=
2.空匹配符,满足精确匹配时
3.^~
4.~或~*
5.空匹配符,满足以指定模式开始时的匹配时

匹配规则是:最大前缀匹配(与顺序无关)
如果恰好是严格精确匹配结果或者加有前缀“ ^~ ”或“ =     则停止搜索正则 location
对于正则 location 的匹配规则是:按编辑顺序逐个匹配(与顺序有关)
只要匹配上,就立即停止后面的搜索

实例分析:

location = / {  configuration A }

# = 表示精确的查找地址,如location = /  它只会匹配uri为/的请求,

如果请求为/index.html,将查找另外的location,而不会匹配这个,
         当然可以写两个location,location = /和location /,这样/index.html将匹配到后者
         如果你的站点对/的请求量较大,可以使用这个方法来加快请求的响应速度。

location  / {  configuration B  }

# 遵守普通location 的最大前缀匹配,由于任何URI 都必然以“/ ”根开头,所以对于一个URI ,如果有更specific 的           匹配,那自然是选这个更specific 的,如果没有,“/ ”一定能为这个URI 垫背(至少能匹配到“/ ”),也就是说“                     location / {} ”有点默认配置的味道,其他更specific的配置能覆盖overwrite 这个默认配置        
          (这也是为什么我们总能看到location / {} 这个配置的一个很重要的原因)

location ^~ /images/ {  configuration C }

# 匹配任何已/images/开头的查询并且停止搜索。任何正则表达式将不会被测试。

location ~* .(gif|jpg|jpeg)$ {   configuration  D }

# 匹配任何已.gif、.jpg 或 .jpeg 结尾的请求,但是 所有  /images/开头的请求 会匹配到  configuration C

location  @named {  configuration  E } 
       #它是专门用来处理“内部重定向(internally redirected )

Nginx location配置 正则表达式的更多相关文章

  1. Nginx location配置详细解释

    nginx location配置详细解释 语法规则: location [=|~|~*|^~] /uri/ { - } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 ur ...

  2. Nginx location 配置用法及正则例子

    Nginx location 配置语法     1. location [ = | ~ | ~* | ^~ ] uri { ... }     2. location @name { ... }   ...

  3. Nginx Location配置总结

    Nginx Location配置总结 语法规则: location [=|~|~*|^~] /uri/ { - }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即 ...

  4. nginx location配置

    nginx location配置   location在nginx中起着重要作用,对nginx接收到的请求字符串进行处理,如地址定向.数据缓存.应答控制.代理转发等location语法location ...

  5. nginx location 配置详解 【转载,整理】

    http://www.nginx.cn/115.html NGINX location 配置参考:http://www.cnblogs.com/zlingh/p/6288994.html https: ...

  6. [转帖]nginx location配置详细解释

    nginx location配置详细解释 http://outofmemory.cn/code-snippet/742/nginx-location-configuration-xiangxi-exp ...

  7. Nginx Location配置语法介绍、优先级说明

    nginx 语法规则:location   [=|~|~*|^~|!~|!~*]    /uri/   { … } location匹配的是$document_uri,$document_uri 会随 ...

  8. nginx location 配置阐述优先级别使用说明

    使用nginx 有大半年了,它的高性能,稳定性表现很好. 这里也得到很多人的认可. 其中它的配置,有点像写程序一样,每行命令结尾一个";"号,语句块用"{}"括 ...

  9. nginx location配置与rewrite配置

    注:原文出处 www.linuxidc.com/Linux/2015-06/119398.htm 1. location正则写法 一个示例: location =/{ # 精确匹配 / ,主机名后面不 ...

随机推荐

  1. APICloud联合腾讯云推出“云主机解决方案“,各种福利等你拿

    为了帮助开发者一站式打通云.开发.运维全流程服务,更全面提供基于自身业务情况的云服务器.数据库.存储等基础设施服务,APICloud联合腾讯云重磅推出“云主机解决方案“.开发者可通过控制台简单清晰的购 ...

  2. windows环境下使用python3.x自带的CGI服务器测试cgi脚本(转)

    1.在桌面上新建一个文件夹作为服务器目录文件夹(文件夹名称自定义,文件夹位置自定义),在www文件下再建一个文件夹,文件夹名为“cgi-bin”,须是这个文件名,其他试过不行(原因暂时未知)

  3. java 运行和编译

    一.编译->运行 1.编译 javac  文件名.java  生成 文件名.class 2.运行 java 文件名 注意:正在运行的是 文件名.class 因此:修改源文件后,要先编译,再运行 ...

  4. flask路由要点

    1.参数类型intfloatstringpath uuid<any(a, b): an> 枚举, an必须是any中的值2.多个url指向一个视图函数是可行的3.url_for('蓝图名字 ...

  5. 9、python判断语句与循环语句

    前言:本文主要介绍python判断语句与循环语句,包括if语句.while循环.for循环.range函数. 一.if语句  关键字:if.elif.else,写法如下: # if if 条件: # ...

  6. [NOI2005]维护数列(区间splay)

    [NOI2005]维护数列(luogu) 打这玩意儿真是要了我的老命 Description 请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线‘ _ ’表示实际输入文 ...

  7. ES6笔记分享 part 2

    ECMAScript ES6 从一脸懵逼到灵活运用 接 part 1 New String Methods const id = 'adcd123456x'; const fan = 'I love ...

  8. nmap详解之选项说明

    功能选项 功能选项可以组合使用.一些功能选项只能够在某种扫描模式下使用.nmap会自动识别无效或者不支持的功能选项组合,并向用户发出警告信息. 如果你是有经验的用户,可以略过结尾的示例一节.可以使用n ...

  9. ActiveMQ 快速入门教程系列 第一章 点对点消息实现

    ActiveMQ 开发包下载及运行环境搭建 主页:http://activemq.apache.org/目前最新版本:5.11.1开发包及源码下载地址:http://activemq.apache.o ...

  10. 【大白话系列】MySQL 学习总结 之 初步了解 MySQL 的架构设计

    一.MySQL还是个黑盒子 我们都知道,只要我们系统引入了 MySQL 驱动和连接池,就能从数据库连接池获取一个数据库连接,然后就可以执行增删改查的操作了. 可是我们并不知道 MySQL 里面是怎么执 ...