Quando não especificado, a diretiva index
tem um padrão implícito de index.html
. Qual está presente em sua raiz do original. (Veja a documentação abaixo que eu incluí detalhando padrões e tal)
Se você quiser alterar o que ele serve como sua página de índice, você precisa definir uma nova diretiva index
, de forma que você adicione isso ao bloco /
location ou aplique-o globalmente apenas colocando-o fora dos blocos de localização, mas ainda dentro do seu bloco de servidores:
index nginx.html;
Isso diz ao nginx para procurar um arquivo de índice diferente.
O problema que você está vendo é porque o /
bloco de localização somente se aplica se você tiver o / especificado e porque você não permite autoindex
e porque /whatever
é seu URI e que não existe como um arquivo ou diretório, ele volta para sua terceira opção, o arquivo nginx.html
. Eu sei que isso é contra-intuitivo, como um URI vazio ou um /
URI normalmente significa "Processar isso pelo bloco location / { }
, mas é mais implícito no mundo que isso leva você para a home page ou página de índice de um dado website, e é por isso que existe a diretiva index
.
Você precisa dizer ao sistema o que tratar como um arquivo de índice para qualquer configuração. Você não pode confiar somente em try_files
no seu bloco /
location, você tem que dizer qual deve ser o seu arquivo de índice. Eu sempre defino isso mesmo que os padrões funcionem bem para mim.
Observe que, se você não definir um URI, try_files
retornará à diretiva index
, portanto, uma solicitação para http://foobarbaz.foo:8510
alcançará o bloco do servidor nginx que atende na porta 8510 para o nome do servidor / $HOST
pedido registro de foobarbaz.foo
, com um URI vazio, e tecnicamente vai ter nginx, internamente, tentar e servir o padrão index.html
página de índice por causa de sua configuração não especificando um% diferenteindex
para servir para qualquer tipo de pedido.
A partir da documentação nginx relacionada da diretiva index
:
Syntax:
index
file ...;
Default:index index.html;
Context:http, server, location
Define arquivos que serão usados como um índice. O nome do arquivo pode conter variáveis. Os arquivos são verificados na ordem especificada. O último elemento da lista pode ser um arquivo com um caminho absoluto. Exemplo:
index index.$geo.html index.0.html /index.html;
Deve-se observar que o uso de um arquivo de índice causa uma redirecionar e a solicitação pode ser processada em um local diferente. Por exemplo, com a seguinte configuração:
location = / { index index.html; } location / { ... }
... uma solicitação "/" será processada no segundo local como "/Index.html".