No meu aplicativo, quero que o local "/" retorne um arquivo index.html estático, desejo que "/ static" exiba arquivos estáticos de uma pasta e desejo que todos os outros pedidos retornem 404 NOT FOUND. Posteriormente, redirecionarei todas as outras solicitações para um servidor WSGI.
Esta é atualmente minha configuração:
# Dev server.
server {
listen 1337;
charset UTF-8;
location / {
rewrite ^ static/index_debug.html break;
}
location /static {
alias /home/tomas/projects/streamcore/static;
}
}
A pasta estática está funcionando perfeitamente, mas "/" está retornando 404 NOT FOUND. Eu também tentei:
alias /home/tomas/projects/streamcore/static/index_debug.html;
No bloco de localização, mas que retorna 500 INTERNAL SERVER ERROR. Parece que alias
não gosta de arquivos únicos. Além disso, tentei:
try_files static/index_debug.html;
Mas isso impede que o servidor inicie com o erro "número inválido de argumentos na diretiva try_files". Aparentemente try_files
requer que você experimente mais de um arquivo, o que não é o comportamento que estou procurando.
Então, minha pergunta é: Como posso configurar um bloco de localização para sempre retornar um arquivo estático?
EDIT: eu vi de outras respostas que alias
deveria aceitar um único arquivo como argumento, então eu tentei:
location = / {
alias /home/tomas/projects/streamcore/static/index_debug.html;
}
Mas eu ainda só recebo 500 INTERRAL SERVER ERROR. O log de erro da solicitação "/" diz:
[alert] 28112#0: *7 "/home/tomas/projects/streamcore/static/index_debug.htmlindex.html" is not a directory
Por que está tentando abrir "index_debug.htmlindex.html"? Não estou usando a diretiva index
em nenhum lugar.