Respuestas:
Hay varias buenas razones para pegar otro servidor web frente a Node.js:
Voy a advertir la segunda viñeta diciendo que probablemente debería estar sirviendo sus archivos estáticos a través de un CDN, o desde detrás de un servidor de almacenamiento en caché como Varnish. Si está haciendo esto, realmente no importa si el origen es Node o Nginx o Apache.
Advertencia con nginx específicamente: si está usando websockets, asegúrese de usar una versión reciente de nginx (> = 1.3.13), ya que solo agregó soporte para actualizar una conexión para usar websockets.
:80sin ejecutar el nodo como raíz simplemente usando authbind: thomashunter.name/blog/using-authbind-with-node-js
Solo para agregar una razón más a la respuesta de pauljz, utilizo un servidor front-end para que pueda servir hasta 502 páginas de error cuando reinicio el servidor de fondo o se bloquea por alguna razón. Esto permite que sus usuarios nunca reciban un error acerca de no poder establecer una conexión.
Creo que usar Node para servir archivos estáticos está bien en todas las circunstancias , siempre y cuando sepas lo que estás haciendo . Sin duda, es un nuevo paradigma utilizar el servidor de aplicaciones para servir archivos estáticos, ya que muchas (¿todas?) Tecnologías competidoras (PHP, Ruby, Python, etc.) requieren un servidor web como HTTPD o Nginx frente a los servidores de aplicaciones. .
Cada razón objetiva que he leído en contra de servir archivos estáticos con Node gira en torno a la idea de usar lo que mejor sabe o usar lo que se percibe como mejor probado / más estable. Estas son razones muy válidas prácticamente hablando, pero tienen poca relevancia puramente técnica.
A menos que encuentre una función que sea posible con un servidor web clásico que no sea posible con Node (y dudo que lo haga), elija lo que mejor sabe o con qué prefiere trabajar, ya que cualquiera de los dos enfoques está bien.
En cuanto a Nginx vs Apache, "jugarán" con Node lo mismo. Debe compararlos sin tener en cuenta el nodo.
systemd, pm2, etc. Así que hay ventajas y desventajas y el usuario debe escoger su veneno, por así decirlo .
express.staticmanejará ETags y encabezados de control de caché muy bien.