Why does nginx match my status-lan call to the status location?
Porque a localização é uma expressão regular e esta expressão regular:
location ~ ^/api/status/? {
significa "começa com / api / status, seguido por uma barra final opcional", o que vem depois da partida não importa.
A configuração provavelmente deve ser:
location ~ ^/api/status/?$ {
rewrite ^ /path/to/some/handler/wan.handler;
}
location ~ ^/api/status-lan/?$ {
rewrite ^ /path/to/some/handler/lan.handler;
}
Ou seja. Combine o URL inteiro, não apenas o começo. Em caso de dúvida, ative o registro de regravação , pois isso tornará óbvio o que está acontecendo. e porquê.