Nas instalações nginx padrão, existe um arquivo chamado mime.types
, que mapeia as extensões de arquivo para os tipos MIME.
Assim, para solicitações de arquivos estáticos, o nginx verifica a extensão do arquivo a ser enviado ao cliente e, em seguida, pesquisa o mime.types
what Content-Type
header para enviar ao cliente.
Portanto, não pode haver mágica MIME em location
blocos.
Se você quisesse dizer que o nginx pegaria o tipo MIME baseado no conteúdo do arquivo, isso seria muito ineficiente.
Atualmente, quando o nginx está atendendo a solicitação, ele procura o tipo MIME da tabela e adiciona o cabeçalho do tipo MIME. Em seguida, ele abrirá o arquivo e basicamente o copia para o soquete do cliente.
No entanto, se alguém desejar que o nginx selecione o tipo MIME com base no conteúdo do arquivo, no pior caso ele terá que ler e interpretar o arquivo inteiro para descobrir o tipo de arquivo correto. Isso exigiria muito mais CPU e tornaria o desempenho muito pior. Essa é a razão pela qual não existe tal recurso no nginx.
A melhor abordagem é ter extensões adequadas para os arquivos que você está enviando para os clientes.
Se isso não for possível, você deverá implementar essa inspeção de conteúdo de arquivo no idioma de sua preferência.