Come posso configurare un block di posizione per restituire sempre un singolo file in nginx?

Nella mia applicazione voglio che la posizione "/" restituisca un file static index.html, voglio "/ statico" per servire file statici da una cartella e voglio che tutte le altre richieste restino 404 NON TROVATE. In un secondo momento ricondisco tutte le altre richieste a un server WSGI.

Questa è la mia configuration:

  • Limiti la dimensione del file di caricamento e reindirizza l'utente alla pagina di errore se il limite supera
  • direttiva sconosciuta "geoip_country" su nginx / 1.10.1
  • Dove posizionare il file config di Nginx IP blacklist?
  • nginx cattura tutte le altre posizioni che dati
  • Come configurare Gitlab-omnibus con il web-server non in bundle?
  • ApacheBenchmark ab - SSL letto non riuscito - connessione di chiusura
  • # 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 block di posizione, ma che restituisce 500 ERRORE INTERNO SERVER. Sembra che l' alias non ama i singoli file. Inoltre ho provato:

     try_files static/index_debug.html; 

    Ma questo arresta il server dall'inizio dell'errore "numero non valido di argomenti nella direttiva try_files". Apparentemente try_files richiede di provare più di un file, che non è il comportmento che cerco.

    Quindi la mia domanda è: come faccio a configurare un block di posizione per restituire sempre un file statico?


    EDIT: Ho visto da altre risposte che l' alias dovrebbe accettare un solo file come argomento, quindi ho provato:

     location = / { alias /home/tomas/projects/streamcore/static/index_debug.html; } 

    Ma ho ancora solo 500 ERRORE INTERNO SERVER. Il log degli errori per la richiesta "/" dice:

      [alert] 28112 # 0: * 7 "/home/tomas/projects/streamcore/static/index_debug.htmlindex.html" non è una directory 

    Perché sta cercando di aprire "index_debug.htmlindex.html"? Non utilizzo la direttiva index nessuna parte.

  • Nginx Non Logging https /: 443 Richieste
  • Quali autorizzazioni sono necessarie per eseguire un command system () all'interno di uno script php che scrive a una cartella?
  • Come faccio a contare i messaggi di Postfix di Postfix?
  • Come montare l'unità a Google Cloud (Google Compute Engine)?
  • Come trovare i file che non contengono una determinata string di ricerca
  • IPSec di Linux. (CentOs 5.3, digitazione manuale)
  • One Solution collect form web for “Come posso configurare un block di posizione per restituire sempre un singolo file in nginx?”

    Basta testare questo e funziona per me:

     server { root /tmp/root; server { listen 8080; location /static { try_files $uri =404; } location / { rewrite ^ /static/index_debug.html break; } } } 

    Il file /tmp/root/static/index_debug.html esiste naturalmente 🙂

    Posso colpire qualsiasi URL e ho solo la pagina statica.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.