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:

  • Vista sul block multiple server Nginx in mobile e desktop
  • Come servire file statici specifici con nginx?
  • Nginx inoltra git.example.com a www.example.com
  • Utente per host virtuale in Nginx
  • nginx submit in bianco 200 risposte
  • Come fare Nginx in avanti il ​​nome host originale
  • # 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.

  • Disinstallare i file che volano in un pipe
  • Jetty JMX per l'accesso remoto
  • Dove dovrei vivere la mia partizione di swap / s quando si utilizza il software RAID1? Prestazione? LVM?
  • console virsh e dimensione tty
  • Dati di backup mantenendo gli ACL POSIX e le autorizzazioni
  • data: Imansible impostare la data: Funzionamento non consentito
  • 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.