nginx location优先级的深入讲解_nginx

来源:脚本之家  责任编辑:小易  

location本身是不存在优先级的,2113但是按顺序右上及下5261依次执4102行的。也就是说,如果你定义了相同条件的1653location两次,先执行上面的,再执行下面的。举个例子location ~ /abc/ { ... }然后下面location ~/abc/.+\.jpg {....} 这样的,当url为 /abc/123.jpg 时满足了这两个条件,那么先执行上面的,然后执行下面的,Location语法语法:location [=|~|2113~*|^~] /uri/ { … }语法解释:= 开头表示精5261确匹配/和^~ 开头表示常4102规字符串~ 开头表示区分大小1653写的正则匹配~* 开头表示不区分大小写的正则匹配!~ 和 !~* 分别为区分大小写不匹配及不区分大小写不匹配 的正则多个location配置的情况下匹配顺序为:1、首先匹配 =,其次匹配常规字符串, 其次是正则匹配。2、精确匹配当有匹配成功的时候,停止匹配。3、常规字符串匹配长度优先,越长优先级越高,其中以^~开头的匹配成功后不再进行正则匹配;/ 任何请求都会匹配到;nginx 不对 url 做编码,因此请求为 /static/20%/aa,可以被规则 ^~ /static/ /aa 匹配到(注意是空格)。4、正则匹配当有匹配成功时候,停止匹配,按当前匹配规则处理请求www.zgxue.com防采集请勿采集本网。

location表达式类型

这个我不清楚,如果有什么想知道关于PHP的,可以去后盾网看看

~ 表示执行一个正则匹配,区分大小写

这个不需要做什么特别设置吧!你只需要定义网站根目录就行了

~* 表示执行一个正则匹配,不区分大小写

munication between bor

^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location。

写跳装吧!rewrite/test/tmp/testpermanent;或者location~\.(gif|jpg|jpeg|png|bmp|swf)${roothtml;expires30d;if(!-f$request_filename){root/var/www/html

= 进行普通字符精确匹配。也就是完全匹配。

回复 1# 的帖子 先nginx.conf,再include

@ "@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

location优先级说明

在nginx的location和配置中location的顺序没有太大关系。正location表达式的类型有关。相同类型的表达式,字符串长的会优先匹配。

以下是按优先级排列说明:

第一优先级:等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。

第二优先级:^~类型表达式。一旦匹配成功,则不再查找其他匹配项。

第三优先级:正则表达式类型(~ ~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。

第四优先级:常规字符串匹配类型。按前缀匹配。

location优先级示例 配置项如下:

location = / {# 仅仅匹配请求 /[ configuration A ]}location / {# 匹配所有以 / 开头的请求。但是如果有更长的同类型的表达式,则选择更长的表达式。如果有正则表达式可以匹配,则# 优先匹配正则表达式。[ configuration B ]}location /documents/ {# 匹配所有以 /documents/ 开头的请求。但是如果有更长的同类型的表达式,则选择更长的表达式。#如果有正则表达式可以匹配,则优先匹配正则表达式。[ configuration C ]}location ^~ /images/ {# 匹配所有以 /images/ 开头的表达式,如果匹配成功,则停止匹配查找。所以,即便有符合的正则表达式location,也# 不会被使用[ configuration D ]}location ~* \.(gif|jpg|jpeg)$ {# 匹配所有以 gif jpg jpeg结尾的请求。但是 以 /images/开头的请求,将使用 Configuration D[ configuration E ]}

请求匹配示例

/ -> configuration A/index.html -> configuration B/documents/document.html -> configuration C/images/1.gif -> configuration D/documents/1.jpg -> configuration E

注意,以上的匹配和在配置文件中定义的顺序无关。

总结

到此这篇关于nginx location优先级的文章就介绍到这了,更多相关nginx location优先级内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网! 您可能感兴趣的文章:Nginx配置指令location匹配符优先级和安全问题Nginx配置之location的匹配优先级浅析

location本身存优先级按顺序右及依执2113行说5261定义相同条件location两先执行面再执行面举例4102 location ~ /abc/ { ... } 面 location ~/abc/.+\.jpg {....} url /abc/依贰三1653.jpg 满足两条件先执行面执行内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • nginx 内置变量详解及隔离进行简单的拦截
  • nginx 配置服务启动的教程详解
  • ngnix在windows下的安装及环境配置(将nginx作为服务运行)
  • 用nginx反向代理node.js的方法
  • windows10 系统配置nginx文件服务器的图文教程
  • nginx中的limit_req限速设置配置示例
  • 在阿里云centos下如何安装nginx
  • nginx列出目录和文件并用密码控制访问权限配置方法
  • nginx服务器做负载均衡反向代理的超级攻略
  • nginx服务器搭建和配置详解
  • nginx location优先级高低
  • nginx 的location之间有优先级吗
  • nginx里location匹配的有限级别是?
  • nginx if location哪个先执行
  • 请教个 nginx 的一个 location 写法
  • nginx设置location
  • Nginx伪静态location ~* ^/((.*)这个写法啥意思啊...
  • nginx配置location什么意思
  • 请问nginx.conf的执行过程(执行顺序),以及和inc...
  • nginx location结尾中有/ 和没
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器nginx配置指令location匹配符优先级和安全问题nginx配置之location的匹配优先级浅析nginx 内置变量详解及隔离进行简单的拦截ngnix在windows下的安装及环境配置(将nginx作为服务运行)用nginx反向代理node.js的方法windows10 系统配置nginx文件服务器的图文教程nginx中的limit_req限速设置配置示例在阿里云centos下如何安装nginxnginx列出目录和文件并用密码控制访问权限配置方法nginx服务器做负载均衡反向代理的超级攻略nginx服务器搭建和配置详解nginx提示:500 internal servernginx 多站点配置方法集合权限问题导致nginx 403 forbiddenginx fastcgi错误primary scripnginx服务器的反向代理proxy_pasnginx 403 forbidden的解决办法nginx伪静态配置和常用rewrite伪详解nginx服务器中配置超时时间的nginx下301重定向域名的方法小结windows下nginx+php5的安装与配置nginx 虚拟主机设置实例(多网站配置)nginx配置域名访问时域名后出现两个斜杠/使用nginx实现灰度发布的使用nginx中文件下载指定保存文件名的配置方法nginx安装到指定目录的方法示例nginx session共享问题解决方案解析nginx支持tcp转发的配置分享nginx下配置thinkphp文件的方法实例详解springboot+nginx实现资源上传功centos 7下编译安装nginx 1.11.10教程
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved