问题描述
我有位置:
location /api {
proxy_pass http://api:$api_port;
}
理论:
-
/api
必须匹配 -
/api/
必须匹配 -
/api/lol
必须匹配 -
/apiqqqq
不能匹配
实践:
-
/api
匹配 -
/api/
匹配 -
/api/lol
匹配 -
/apiqqqq
匹配(但不能匹配)
我在做什么错?如何使/apiqqqq
不匹配?
解决方法
location
工作正常。为了使您的逻辑正常工作,您将需要使用正则表达式或两个位置块。
例如:
location ~ ^/api(/|$) { ... }
或者:
location = /api { ... }
location /api/ { ... }
请注意,正则表达式location
块的求值顺序很重要。有关详细信息,请参见this document。