Nella mia applicazione voglio che la posizione "/" restituisca un file index.html statico, voglio che "/ static" serva i file statici da una cartella e voglio che tutte le altre richieste restituiscano 404 NOT FOUND. In un secondo momento reindirizzerò tutte le altre richieste a un server WSGI.
Questa è attualmente la mia configurazione:
# Dev server.
server {
listen 1337;
charset UTF-8;
location / {
rewrite ^ static/index_debug.html break;
}
location /static {
alias /home/tomas/projects/streamcore/static;
}
}
La cartella statica funziona perfettamente, ma "/" restituisce 404 NON TROVATO. Ho anche provato:
alias /home/tomas/projects/streamcore/static/index_debug.html;
Nel blocco posizione, ma restituisce 500 ERRORE SERVER INTERNO. Sembra alias
che non piacciano i singoli file. Inoltre ho provato:
try_files static/index_debug.html;
Ma ciò impedisce al server di iniziare con l'errore "numero di argomenti non valido nella direttiva try_files". Apparentemente in try_files
realtà ti richiede di provare più di un file, che non è il comportamento che sto cercando.
Quindi la mia domanda è: come configuro un blocco di posizione per restituire sempre un file statico?
EDIT: Ho visto da altre risposte che alias
dovrebbero effettivamente accettare un singolo file come argomento, quindi ho provato:
location = / {
alias /home/tomas/projects/streamcore/static/index_debug.html;
}
Ma ho ancora solo 500 ERRORI DEL SERVER INTERNO. Il registro degli errori per la richiesta "/" indica:
[alert] 28112 # 0: * 7 "/home/tomas/projects/streamcore/static/index_debug.htmlindex.html" non è una directory
Perché sta provando ad aprire "index_debug.htmlindex.html"? Non sto usando la index
direttiva da nessuna parte.
location =/
ottengo 404 NON TROVATO, con location /
ottengo 500 ERRORE SERVER INTERNO.
location / { return 404; }
location = / {Index /home/tomas/projects/streamcore/static/index_debug.html;}
try_files static/index_debug.html static/index_debug.html;