nginx location指令详解,

location匹配的是nginx的哪个变量?

$request_uri

location的匹配种类有哪些?

=开头表示精确匹配

^~ 开头,注意这不是一个正则表达式(是提升优先级的字符串匹配)–它的目的是优先于正则表达式的匹配。如果该location是最佳匹配,则不再进行正则表达式检测。

~ 开头表示区分大小写的正则匹配;

~* 开头表示不区分大小写的正则匹配

!~ && !~*:表示区分大小写不匹配的正则和不区分大小写的不匹配的正则

字符串匹配

/通用匹配, 如果没有其它匹配,任何请求都会匹配到

location搜索顺序

首先精确匹配 =

其次匹配 ^~

再其次按照配置文件的顺序进行正则匹配

最后是交给/进行通用匹配

注意:当有匹配成功时,立刻停止匹配,按照当前匹配规则处理请求

特别注意:字符串匹配优先搜索,但是只是记录下最长的匹配 ,然后继续搜索正则匹配,如果有正则匹配,则命中正则匹配,如果没有正则匹配,则命中最长的字符串匹配。 ( 如果 ^~ 是最长的匹配,则会直接命中,停止搜索正则 )

精确匹配

location = /images/test.png {

echo 'config1';

}

location /images/test.png {

echo 'config2';

}

location \/images\/test\.png$ {

echo 'config3';

}

如果此时请求 http://127.0.0.1/images/test.png 会输出什么呢?

输出 config1, 毋容置疑,精确匹配优先级最高!

精确匹配的特殊情况

location = / {

index index.html;

}

location / {

echo 'config2';

}

此时是输入http://127.0.0.1 会输出什么呢?

是输出 config2, 怎么精确匹配的优先级不灵了呢?

是这样的,精确匹配还是起作用了,请求目录(非具体文件),nginx会将请求内部定向到index文件,

既此时真正的请求是http://127.0.0.1/index.html, 这是 config2则被命中!

所以精确匹配不要用来匹配 /

字符串搜索与正则搜索

location /images/test.png {

echo 'config1';

}

location ^~ /images/ {

echo 'config2';

}

location ~ \/images\/test\.png$ {

echo 'config3';

}

location ~ \/images\/ {

echo 'config4';

}

如果此时请求 http://127.0.0.1/images/test.png 会输出什么呢?

当然是 config3,正则命中

(虽然 config1 为最长匹配的字符串,此时只做记录,后面还要搜索正则匹配,则config3正则匹配命中),

仔细观察可以发现config4也被匹配成功了,但是正则的匹配顺序是按照location的定义顺序匹配的,所以config3命中.

字符串匹配优先级的提升( ^~ )

location /images/ {

echo 'config1';

}

location ^~ /images/test.png {

echo 'config2';

}

location ~ /images/test\.png$ {

echo 'config3';

}

location ~ \/images\/ {

echo 'config4';

}

如果此时请求 http://127.0.0.1/images/test.png 会输出什么呢?

当然是config2, 首部匹配命中

(因为字符串匹配是优先搜索的,此时发现config2 为最长的字符串匹配且为^~匹配方式,所以停止搜索正则,直接命中!)

所以这里的 ^~ 符号比较特殊,就是为了提高字符串匹配的优先级,优先于正则匹配.

http://www.dengb.com/PHPjc/1390083.htmlwww.dengb.comtruehttp://www.dengb.com/PHPjc/1390083.htmlTechArticlenginx location指令详解, location匹配的是nginx的哪个变量? $request_uri location的匹配种类有哪些? = 开头表示精确匹配 ^~ 开头 ,注意这不是一个正...

location ~ .php$,nginx location指令详解,相关推荐

  1. 九爷带你了解 nginx 日志配置指令详解

    nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...

  2. Nginx配置文件nginx.conf中文详解(转)

    ######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组 user www www;#nginx进程数,建议设置为等于CPU总核心数. worker_pr ...

  3. nginx.conf配置详解

    ######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组 user www www;#nginx进程数,建议设置为等于CPU总核心数. worker_pr ...

  4. nginx.conf 配置文件详解

    本文来说下nginx.conf 配置文件详解 文章目录 Nginx 配置文件概述 nginx.conf 配置文件 通用(这里是 windows 系统系 nginx1.14.2 下 nginx.conf ...

  5. Nginx配置文件中文详解

    ######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组 user www www;#nginx进程数,建议设置为等于CPU总核心数. worker_pr ...

  6. nginx的配置文件详解

    文章目录 1. nginx的配置文件详解 2. nginx.conf配置详解 3. 用于调试.定位问题的配置参数 4. 正常运行必备的配置参数 5. 优化性能的配置参数 6. 事件相关的配置:even ...

  7. Nginx的配置详解

    人无再少年,花有重开日--风城玫瑰 德里克·罗斯 Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能,时常用于服务端的反向代理和负载均衡. Ngin ...

  8. 运维配置:Nginx日志配置详解

    Nginx日志配置详解 前言 Nginx日志对于统计.系统服务排错很有用.Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志).通过访问日志我们可以得到用户的I ...

  9. 手把手教你Nginx常用模块详解之ngx_http_rewrite_module(十)

    本专栏非常感谢大家得关注和支持,本人开源项目站点https://erosbt.com 将自己热爱与信仰的技术,持续不辍地传递. Nginx专栏 手把手教你Nginx常用模块详解之ngx_http_ac ...

最新文章

  1. 斐波那契数列取模(大数)分治算法
  2. Java 14 发布了,终于可以扔掉Lombok了?
  3. frameset 后台管理_易达CMS下载-易达CMS(免费开源网站管理系统)v3.0.0.1103免费版
  4. mysql第四项_mysql数据库的基本介绍与操作(第四篇-mysql索引篇)
  5. wps怎么旋转页面_用WPS文字编辑一份试卷,详细教程来了,老师们赶快收藏吧
  6. 20172332 2017-2018-2 《程序设计与数据结构》第七周学习总结
  7. 80-20-075-原理-Flink内存管理
  8. C#中5中timer的比较
  9. GDAL书籍中删除数据勘误(C#语言)
  10. SolrCloud Hello Word
  11. 把Unity的jdk环境添加到环境变量
  12. 模板方法模式(模板方法设计模式)详解——小马同学@Tian
  13. 笔记本电脑网卡驱动损坏问题
  14. 【JAVA】五子棋2.0
  15. 第一章概述-------第一节--1.2互联网概述
  16. springnbsp;contextnbsp;初始化两次导致dub…
  17. 把内存中的数据传送到计算机硬盘称为,将内存中的数据传送到计算机硬盘的过程称为什么...
  18. 计算机无法对NAS硬盘操作,群晖NAS联机失败不要慌,我用经验告诉你,这样做就能完美解决...
  19. 一只喵的西行记-9 喵林英雄虹猫梦
  20. Java学习导航汇总

热门文章

  1. 脂磷壁酸单克隆抗体的功能参数
  2. 如何利用python画三棱锥_微积分,英文版数学书,Calculus,积分,Excel,自然常数e,Python,泰勒展开...
  3. Replugin与DroidPlugin框架比较
  4. python 标量_只能将size-1数组转换为Python标量 - python
  5. 3月初中国域名商域名解析量26强:新网跌破百万
  6. 解决民生九难,城投隆翔助力西安停车产业发展
  7. 015 Ceph的集群管理_1
  8. 【Embedded System】裸机接口开发
  9. html右侧插入图片,html图片显示 html 插入图片
  10. openlayers地图旋转_OpenLayers 3 之 地图视图(View)