Tenho alguns JSON
scripts/programas expostos para coleta rápida de informações de um servidor. Eu uso o nginx para expô-los apenas como urls brutos. Assim, dadas as seguintes localizações:
location ~ ^/api/status/? {
rewrite ^(.*)$ /path/to/some/handler/wan.handler;
}
location ~ ^/api/status-lan/? {
rewrite ^(.*)$ /path/to/some/handler/lan.handler;
}
Por que nginx
corresponde minha status-lan
chamada ao status
local? Portanto, posso visualizar minha saída /api/status/
muito bem, mas se eu visualizar /api/status-lan/
, obtenho o status
local.
Porque o local é uma expressão regular e esta expressão regular:
significa "começa com /api/status, seguido por uma barra final opcional", o que vem depois da correspondência não importa.
A configuração provavelmente deve ser:
Ou seja, corresponda a url inteira, não apenas o início dela. Em caso de dúvida, ative o log de reescrita , pois ele tornará óbvio o que está acontecendo e por quê.