location路由规则配置详解
location路由匹配发生在HTTP请求处理的find-config配置查找阶段,主要功能是:根据请求的URI地址匹配location路由表达式,如果匹配成功,就执行location后面的上下文配置块。
实战案例说明
本节的配置实例处于源码工程的nginx-location-demo.conf配置文件中。在运行本节的实例前,需要修改openresty-start.bat(或openresty-start.sh)脚本中的PROJECT_CONF配置文件变量的值,将其修改为nginx-location-demo.conf,然后重启OpenRestry/Nginx。
location语法详解
Nginx配置文件中,location配置项的语法格式如下:
location [=|~|~*|^~] 模式字符串 {
...
}
按照匹配的符号不同,location路由匹配主要分成精准匹配、普通匹配、正则匹配、默认根路径匹配。下面逐一进行介绍。
1.精准匹配
精准匹配的符号标记为“=”,下面是一个简单的精准匹配location的例子。
#精准匹配
location = /lua {
echo "hit location: =/Lua";
}
如果请求URI和精准匹配的模式字符串/lua完全相同,那么精准匹配通过。
在所有的匹配类型中,精准匹配的优先级最高。
运行本文的配套案例,在同时存在多个/lua匹配模式location的情况下,在浏览器中给Nginx发送http://localhost/lua的请求地址,输出的是精准匹配的结果,如图7-12所示。
图7-12 输出精准匹配
2.普通匹配