Risposte:
Esistono diversi buoni motivi per attaccare un altro server web davanti a Node.js:
Avvertirò il secondo punto critico dicendo che probabilmente dovresti servire i tuoi file statici tramite un CDN o da dietro un server di cache come Varnish. Se lo stai facendo, non importa se l'origine è Node o Nginx o Apache.
Avvertenza specifica per nginx: se stai utilizzando websocket, assicurati di utilizzare una versione recente di nginx (> = 1.3.13), poiché ha appena aggiunto il supporto per l'aggiornamento di una connessione per utilizzare websocket.
:80senza eseguire il nodo come root semplicemente usando authbind: thomashunter.name/blog/using-authbind-with-node-js
Solo per aggiungere un motivo in più alla risposta di pauljz, uso un server front-end in modo che possa servire fino a 502 pagine di errore quando riavvio il server back-end o si blocca per qualche motivo. Ciò consente ai tuoi utenti di non ricevere mai un errore a causa dell'impossibilità di stabilire una connessione.
Sono convinto che l'utilizzo di Node per servire file statici vada bene in tutte le circostanze , purché tu sappia cosa stai facendo . È certamente un nuovo paradigma utilizzare il server delle applicazioni per servire file statici in quanto tante (ogni?) Tecnologie concorrenti (PHP, Ruby, Python, ecc.) Richiedono un server web come HTTPD o Nginx di fronte ai server delle applicazioni .
Ogni ragione oggettiva che abbia mai letto contro la pubblicazione di file statici con Node ruota attorno all'idea di utilizzare ciò che conosci meglio o di utilizzare ciò che viene percepito come meglio testato / più stabile. Queste sono ragioni molto valide in termini pratici, ma hanno poca rilevanza puramente tecnica.
A meno che non trovi una funzione possibile con un server Web classico che non è possibile con Node (e dubito che lo farai), scegli ciò che sai meglio o con quale preferiresti lavorare poiché entrambi gli approcci vanno bene.
Per quanto riguarda Nginx vs Apache, "giocheranno" con Node lo stesso. Dovresti confrontarli senza considerare Nodo.
systemd, pm2ecc Quindi ci sono vantaggi e svantaggi e l'utente dovrebbe scegliere il loro veleno, per così dire .
express.staticgestirà bene ETags e intestazioni di controllo della cache.