nginx-location规则匹配

location配置

语法规则:location [=|~|~*|^~] /uri/ {...}

= 表示精确匹配,优先级最高

^~ 表示uri以某个常规字符开头,理解为匹配url路径即可。nginx不对url做编码,因为请求为/static/20%/aa

可以被规则^~/static//aa匹配到(注意是空格)

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

~* 表示不区分大小写的正则匹配(和上面的唯一区别就是大小写)

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则

/ 通用匹配,任何请求都会匹配到,默认匹配.

优先级=>^~>

首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,

停止匹配,按当前匹配规则处理请求。

时间: 2024-08-04 17:01:31

nginx-location规则匹配的相关文章

nginx location 规则优先级

一 nginx  location 匹配命令 ~   #表示执行一个正则匹配,区分大小写 ~*  #表示执行一个正则匹配,不区分大小写 ^~  #表示普通字符匹配,如果该选项匹配,只匹配该选项, 不匹配别的选项,一般用来匹配目录 =   #进行普通字符精确匹配 二 nginx location 匹配优先级(与location在配置文件中的顺序无关) 1=  精确匹配.如果发现精确匹配,nginx停止搜索其他匹配模式. 2    普通字符匹配,正则表达式规则和长的块规则将被优先和和查询匹配,也就是

Nginx location指令匹配顺序规则

location匹配命令 1. "= ",字面精确匹配, 如果匹配,则跳出匹配过程.(不再进行正则匹配) 2. "^~ ",最大前缀匹配,如果匹配,则跳出匹配过程.(不再进行正则匹配) 3. 不带任何前缀:最大前缀匹配,举例如下: location /  代表以"/"开头的搜索匹配, 再没有正则表达式匹配的情况下才进行这个匹配(优先级最低) 4. "~ ",大小写相关的正则匹配 5. "~* " , 大小写

nginx location规则优先级

nginx服务器在server块的多个location块中搜索是否有标准uri和请求字符串匹配,如果有多个可以匹配,就记录下来匹配度最高的一个.然后,服务器再用location块中的正则uri和请求字符串匹配,当第一个正则uri匹配成功,结束搜索,并使用这个location块处理此请求:如果正则匹配全部失败,就使用刚才记录的匹配度最高的location块处理此请求. location 优先级        nginx 的配置如下 server {         listen       80;

有关nginx location规则

由于公司最近在做nginx相关项目,研究了一下location的规则,主要参考的博文为http://www.jb51.net/article/47761.htm 的文章,但是自己实际操作一下后,发现了一些问题. location的优先级是这样的 假设访问的路径为 127.0.0.1/a/1.jpg 则优先级为 location = /a/1.jpg > location /a/1.jpg > location ^~ /a/ > location ~*\.jpg$ > locatio

2019.9.20 Nginx Location 及静动分离案例

一.Nginx正则及location匹配1.Nginx location规则匹配^~:标识符匹配后面跟一个字符=:精准匹配~:区分大小写的匹配~*:不区分大小写的匹配!~:对区分大小写的匹配取非!~*:对不区分大小写的匹配取非/:通用匹配2.正则表达式*:重复前面的字符0次或多次?:重复前面的字符0次或1次+:重复前面的字符1次或多次.:匹配除换行符以外的任意一个字符(a|b):匹配a或b^:以...开头$:以...结尾{n}:重复前面的字符n次{n,}:重复前面的字符n次或更多次{n,m}:重

Nginx Location和Rewrite深入剖析

Nginx Location和Rewrite深入剖析 Nginx Location Nginx由内核和模块组成,其中内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端的请求映射到一个location block,而location是Nginx配置中的一个指令,用于访问的URL匹配,而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作. location功能是由ngx_http_index_module模块提供的. location常放在serve

Nginx Localtion规则

Nginx由内核和模块组成,其中内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端的请求映射到一个location block,而location是Nginx配置中的一个指令,用于访问的URL匹配,而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作. 默认Nginx.conf配置文件中至少存在一个location /,即表示客户端浏览器请求的URL为:域名+/,如果location /newindex/,则表示客户端浏览器请求的URL为:域名+

Nginx配置中Location的匹配规则

Location匹配的url的语法规则: location [=|~|~*|^~] /uri/ { … } = 表示精确匹配 ~ 表示区分大小写的正则匹配 ^~ 表示以某个常规字符串开头的url即可: ~* 表示不区分大消息的正则匹配 !~(*!~)表示不区分大小写不匹配的正则 / 通配符,任何请求都能匹配到这个location,如果有任何其他location可以匹配,则会覆盖该location 匹配顺序: 1)先匹配普通url,在匹配正则 2)“普通 location ”的匹配规则是“最大前缀

【转】nginx location匹配规则

转载请保留:http://www.nginx.cn/115.html location匹配命令 ~      #波浪线表示执行一个正则匹配,区分大小写~*    #表示执行一个正则匹配,不区分大小写^~    #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录=      #进行普通字符精确匹配@     #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files location 匹配的优先级(与

nginx location 匹配规则

location匹配规则 ~             #波浪线表示执行一个正则匹配,区分大小写 ~*           #表示执行一个正则匹配,不区分大小写 !~和!~*    #分别为区分大小写不匹配及不区分大小写不匹配 ^~           #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录 =             #进行普通字符精确匹配 @            #"@" 定义一个命名的 location,使用在内部定向时,例如 er