Eu tenho o seguinte código nginx que gostaria que os arquivos json passassem pelos dois locais. Com o código a seguir, os arquivos json passam apenas pelo segundo local. O que é necessário para ter os dois locais "habilitados" para json. Eu quero ter certeza de que o primeiro local contém o /new URI (+ vários outros sub-URIs).
location /new/ {
proxy_http_version 1.1;
proxy_pass http://new_upstream;
}
location ~* \.(?:jpg|jpeg|json|fs)$ {
proxy_pass http://upstream;
}
Conforme explicado na documentação do nginx para location , o nginx primeiro corresponde às correspondências exatas (
= /path
), depois às correspondências de prefixo (/path
) e lembra a melhor correspondência.Em seguida, ele verifica as correspondências de expressão regular e a usa se algo for encontrado.
Se alguém quiser evitar correspondências de expressões regulares para um
location
, é necessário usar o^~
especificador nolocation
:Entretanto, esta configuração força que todas as requisições com prefixo
/new
sejam processadas por aquele bloco. Nenhuma extensão JPG/JPEG/JSON/FS será atendida pelo segundo bloco por/new
bloco.