server { listen 8081; server_name 127.0.0.1; # = : 用于不包含正则表达式的uri前,必须与指定的模式精确匹配(区分大小写,并且后面带/是有区别的) location = /bbb { default_type text/plain; return 200 "access success bbb \n\r"; } } # 能匹配到: http://127.0.0.1:8081/bbb http://127.0.0...
To determine which location directive matches a particular query, the literal strings are checked first. Literal strings match the beginning portion of the query - the most specific match will be used. Afterwards, regular expressions are checked in the order defined in the configuration file. The ...
语法规则: location [=|~|~*|^~] /uri/ {… } 首先匹配 =,其次匹配^~,其次是按文件中顺序的正则匹配,最后是交给 /通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。 匹配规则示例: location= /{ #规则A } location= /login { #规则B } location^~ /static/{ #规则C } location~ \....
最后匹配理带有"~"和"~*"的指令,如果找到相应的匹配,则nginx停止搜索其他匹配; 当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。 location 优先级官方文档: 1. Directives with the = prefix that match the query exactly. If found, searching stops. 2. All rema...
1. 先进行精准匹配,如果匹配成功,立即返回结果并结束匹配过程。 2. 进行普通匹配,如果有多个location匹配成功,将“最长前缀”的location作为临时结果(如果是 ^~类型的普通匹配成功则直接返回结果,结束匹配过程)。 3. 由上至下逐一进行正则匹配,一旦匹配成功1个,立即返回结果,并结束解析过程;如果没有一个正则匹配成功...
location = patt { config A } 1. 2. 3. 如果$uri == patt ,匹配成功,使用 config A。 【例 step 1】 注释掉 /usr/local/nginx/conf/nginx.conf 中之前配置的 server 信息,在默认的 server 段中进行编辑,此时访问 192.168.254.100,显示 此时server 段中 location 的配置为: ...
请求路径中的usg=0和usg=1这两个参数是固定的,因此可以使用$query_string进行正则匹配。 接下来,如果要对参数 uid 的值以 A 或 B 结尾的请求进行处理,就无法使用querystring进行匹配了;因此,需要使用arg_uid 进行正则匹配。 由于usg=0和usg=1这两个参数是互斥的,因此放在location块的顶部即可正确处理。而对于ui...
( location = ) > ( location 完整路径 ) > ( location ^~ 路径 ) > ( location ~,~* 正则顺序 ) > ( location 部分起始路径 ) > ( / ) 上面的匹配结果 按照上面的location写法,以下的匹配示例成立: / -> config A 精确完全匹配,即使/index.html也匹配不了 ...
nginx 其实是“先匹配普通 location ,再匹配正则 location ”,但是普通 location 的匹配结果又分两种:一种是“严格精确匹配”,官方英文说法是“ exact match ”;另一种是“最大前缀匹配”,官方英文说法是“ Literal strings match the beginning portion of the query – the most specific match will be used. ...