Nginx location 正则篇




location 前缀



没有前缀               匹配以指定模式开头的location



=                          精准匹配,不是以指定模式开头



~                          正则匹配,区分大小写



~*                         正则匹配,不区分大小写



^~                         非正则匹配,匹配以指定模式开头的location



location匹配顺序

  • 多个正则location直接按书写顺序匹配,成功后就不会继续往后面匹配
  • 普通(非正则)location会一直往下,直到找到匹配度最高的(最大前缀匹配)
  • 当普通location与正则location同时存在,如果正则匹配成功,则不会再执行普通匹配
  • 所有类型location存在时,“=”匹配  >  “^~”匹配  >  正则匹配  >  普通(最大前缀匹配)

location匹配路径

alias路径在匹配后直接替换,root路径在匹配后追加到location匹配到的路径之后

原文地址:https://www.cnblogs.com/gdufs/p/8643286.html

时间: 2024-08-28 11:12:12

Nginx location 正则篇的相关文章

nginx location配置

nginx location配置 location在nginx中起着重要作用,对nginx接收到的请求字符串进行处理,如地址定向.数据缓存.应答控制.代理转发等 location语法 location [=|~|~*|^~] uri {...} []部分是匹配类型,可以没有,其中各项含义: (1)= 精准匹配,请求字符串必须和uri完全相同时匹配成功 (2)~ 区分大小写的正则匹配 (3)~* 不区分大小写的正则匹配 (4)^~ 注意这个不是正则匹配,表示uri以普通字符串开头, (5)空 表示

nginx location 详解

Nginx 允许用户定义 Location block ,并指定一个匹配模式(pattern)匹配特定的 URI.除了简单的字符串(比如文件系统路径),还允许使用更为复杂的匹配模式(pattern). Location block 的基本语法形式是: location [=|~|~*|^~|@] pattern { ... }       #pattern 模式的意思 [=|~|~*|^~|@] 被称作 location modifier(位置修改器) ,这会定义 Nginx 如何去匹配其后的

nginx location 规则优先级

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

nginx location规则优先级

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

nginx location一些认识

基本语法 location [=|~|~*|^~|@] /uri/ { - } [=]表示精确匹配,如果找到,立即停止搜索并立即处理此请求. [~ ] 表示区分大小写匹配 [~*] 表示不区分大小写匹配 [^~ ] 表示只匹配字符串,不查询正则表达式. [@] 指定一个命名的location,一般只用于内部重定向请求. **区分和不区分大小写的正则匹配优先级相同,以先后顺序来决定匹配哪一个 **=的优先级比~高 **^~的优先级比~高 **^~优先匹配的是从根开始的匹配 nginx locati

Nginx Location和Rewrite深入剖析

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

nginx location配置(URL)

语法规则: location [=|~|~*|^~] /uri/ { … }= 表示精确匹配,这个优先级也是最高的^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格).~  表示区分大小写的正则匹配~* 表示不区分大小写的正则匹配(和上面的唯一区别就是大小写)!~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则/ 通用匹配,任何请求都会匹配到,默认

nginx负载均衡篇一、nginx配置

如果不知道在Linux下如何安装nginx请参考前一篇文章. nginx负载均衡的配置较apache要简单许多,这里用nginx做负载均衡将不再描述tomcat集群的配置,如果对tomcat集群配置有不懂的地方,请参考Apache反向代理结合Tomcat集群来实现负载均衡(三).tomcat集群文章进行配置.下边进入正题,开始配置nginx负载均衡. 先来看下nginx的完全配置: #user nobody; worker_processes 1; #error_log logs/error.l

nginx location详解

Location block 的基本语法形式是: location [=|~|~*|^~|@] pattern { ... } [=|~|~*|^~|@] 被称作 location modifier ,这会定义 Nginx 如何去匹配其后的 pattern ,以及该 pattern 的最基本的属性(简单字符串或正则表达式) location modifier 1.= Example: server { server_name website.com; location = /abcd { [-]