Nginx Localtion规则

Posted yang821

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx Localtion规则相关的知识,希望对你有一定的参考价值。

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

默认Nginx.conf配置文件中至少存在一个location /,即表示客户端浏览器请求的URL为:域名+/,如果location /newindex/,则表示客户端浏览器请求的URL为:域名+/newindex/。常见Location匹配URL的方式如下:

=                           字面精确匹配;

^~                          最大前缀匹配;

/                           不带任何前缀:最大前缀匹配;

~                           大小写相关的正则匹配;

~*                          大小写无关的正则匹配;

@                           location内部重定向的变量。

其中Location =、^~、/属于普通字符串匹配,Location ~、~*属于正则表达式匹配,Location优先级与其在Nginx.conf配置文件中的先后顺序无关。

Location = 精确匹配会第一个被处理,如果发现精确匹配,Nginx则停止搜索其他任何Location的匹配。

普通字符匹配,正则表达式规则和完整URL规则将被优先和查询匹配,^~为最大前缀匹配,如果匹配到该规则,Nginx则停止搜索其他任何Location的匹配,否则nginx会继续处理其他location指令。

正则匹配"~"和"~*",如果找到相应的匹配,则Nginx停止搜索其他任何Location的匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。

Location规则匹配优先级总结如下:

(location =) > (location 完整路径) > (location ^~ 路径) > (location ~|~* 正则顺序) > (location 部分起始路径) > (location  /)

以上是关于Nginx Localtion规则的主要内容,如果未能解决你的问题,请参考以下文章

nginx location匹配及rewrite规则

nginx rewrite 规则

0906作业

Nginx实践: Nginx语法之localtion

Nginx下伪静态规则

Nginx伪静态规则怎么设置