Diferença entre os valores de bloco de servidor padrão "local /" e Nginx

Diferença entre os valores de bloco de servidor padrão "local /" e Nginx

Qual é o sentido de definir location / { }, já que, se bem entendi, isso corresponderá a todos os URIs potenciais e "perderá" qualquer batalha contra um local com um URI mais específico? Meu raciocínio é que você pode simplesmente colocar todos os valores padrão diretamente no bloco do servidor em vez de definir um arquivo location / { }.

Portanto, se estou correto, isso não serve para nada:

server {
   root /www/html;
   location / {
      root /www/html;
   }

}

PS: Sou muito novo no nginx, então sinta-se à vontade para me dizer se posso formular melhor as coisas para tornar a pergunta mais útil/detectável.

Responder1

Você está correto, seu exemplo específico não serve para nada. Mas existem muitas diretivas nginx que não funcionam no nível do servidor

por exemplo:

server {
    proxy_pass http://localhost:8080;
}

^ isso não funciona.
v isso acontece.

server {
    location / {
        proxy_pass http://localhost:8080;
    }
}

As diretivas em nível de servidor são valores padrão. Existem diretivas que funcionam apenas no nível do servidor, existem diretivas que funcionam apenas no nível do local.

São duas coisas fundamentalmente diferentes, só que o seu exemplo tem as mesmas consequências.

informação relacionada