Nginx 位置无法正常工作
Nginx location not works correctly
我有位置:
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。
我有位置:
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。