Suponha que vários blocos de servidor nginx correspondam a uma solicitação https://www.example.com/bar
:
server {
listen 443;
server_name www.example.com;
location /foo { }
}
server {
listen 443;
server_name www.example.com;
location /bar { }
}
Portanto /bar
, corresponde ao primeiro bloco do servidor (mesmo sem default_server
, pois é listado primeiro). Mas não corresponderá a um local.
Posso forçá-lo a "cair" de alguma forma para o próximo bloco de servidor correspondente, que tem um local correspondente?
Li os documentos de processamento de solicitações, mas não entendo o que acontece neste caso.
Nginx seleciona o bloco de servidor baseado em
listen
eserver_name
diretivas. Depois de escolher o bloco do servidor, ele não o alterará.Existe uma documentação oficial https://nginx.org/en/docs/http/server_names.html , mas eu recomendaria ler este artigo https://www.digitalocean.com/community/tutorials/understanding-nginx-server -e-algoritmos-seleção de bloco de localização