Nginx 是一个高性能的HTTP和反向代理服务器,其中的 location 模块用于根据请求的URI对请求进行路由。本文将详细介绍 Nginx 的 location 匹配规则、优先级,以及如何使用嵌套的 location 配置,并通过示例代码加以说明。
1. Location 基础
location 指令用于匹配 URI,在 Nginx 配置中,典型的用法如下:
location <匹配模式> {
# 配置的指令
}
常见的匹配模式包括:
- 精确匹配(=)
- 前缀匹配(不带特殊标记)
- 正则表达式匹配(~ 和 ~*)
- 路径结尾匹配(^~)
2. Location的匹配规则和顺序
Nginx 遇到一个请求时,会根据以下顺序来匹配 location 指令:
- 精确匹配(=)
- 按前缀匹配(不带特殊标记的)
- 正则表达式匹配(~ 和 ~*)
- 路径结尾匹配(^~)
其中,正则表达式匹配会继续扫描所有正则表达式,选则最长匹配。
示例匹配顺序
server {
listen 80;
server_name example.com;
location = /exact-match {
# 精确匹配
return 200 'Exact match';
}
location /prefix {
# 前缀匹配
return 200 'Prefix match';
}
location ~ \.php$ {
# 正

最低0.47元/天 解锁文章
1566

被折叠的 条评论
为什么被折叠?



