En mi aplicación, quiero que la ubicación "/" devuelva un archivo index.html estático, quiero que "/ static" sirva los archivos estáticos de una carpeta y quiero que todas las demás solicitudes devuelvan 404 NOT FOUND. En un momento posterior, redirigiré todas las demás solicitudes a un servidor WSGI.
Esta es actualmente mi configuración:
# Dev server.
server {
listen 1337;
charset UTF-8;
location / {
rewrite ^ static/index_debug.html break;
}
location /static {
alias /home/tomas/projects/streamcore/static;
}
}
La carpeta estática funciona perfectamente, pero "/" devuelve 404 NOT FOUND. También he intentado:
alias /home/tomas/projects/streamcore/static/index_debug.html;
En el bloque de ubicación, pero eso devuelve 500 ERROR DE SERVIDOR INTERNO. Parece que alias
no le gustan los archivos individuales. Además he intentado:
try_files static/index_debug.html;
Pero eso impide que el servidor comience con el error "número inválido de argumentos en la directiva try_files". Aparentemente, en try_files
realidad requiere que pruebes más de un archivo, que no es el comportamiento que estoy buscando.
Entonces mi pregunta es: ¿cómo configuro un bloque de ubicación para que siempre devuelva un archivo estático?
EDITAR: He visto en otras respuestas que alias
deberían aceptar un solo archivo como argumento, así que intenté:
location = / {
alias /home/tomas/projects/streamcore/static/index_debug.html;
}
Pero todavía solo obtengo 500 ERRORES DE SERVIDOR INTERNO. El registro de errores para la solicitud "/" dice:
[alerta] 28112 # 0: * 7 "/home/tomas/projects/streamcore/static/index_debug.htmlindex.html" no es un directorio
¿Por qué está tratando de abrir "index_debug.htmlindex.html"? No estoy usando la index
directiva en ningún lado.
location =/
, obtengo 404 NOT FOUND y location /
recibo 500 ERROR DE SERVIDOR INTERNO.
location / { return 404; }
location = / {Index /home/tomas/projects/streamcore/static/index_debug.html;}
try_files static/index_debug.html static/index_debug.html;