Você entendeu mal os parâmetros try_files
. Citação de docs :
If none of the files were found, an internal redirect to the uri specified by the last parameter is made.
Somente o último parâmetro é um URI de fallback (ou um local nomeado ou um código), todos os outros parâmetros são arquivos a serem testados. Ou seja,
try_files /file1 /file2 /file3 ... @fallback;
irá verificar os arquivos sob a raiz do documento (/ file1, / file2, / file3 e assim por diante), e se nada for encontrado, o nginx fará um redirecionamento interno para um @fallback.
O try_files ... @static =404;
não faz muito sentido, pois testará um arquivo chamado @static
na raiz do documento e provavelmente não é o que você deseja. O try_files ... =404 @static;
também não faz sentido, pois ele testará um arquivo chamado =404
.
Veja aqui os documentos: link .