Respostas:
Existem vários bons motivos para colocar outro servidor da Web na frente do Node.js:
Vou ressaltar o segundo ponto, dizendo que você provavelmente deveria servir seus arquivos estáticos por meio de uma CDN ou por trás de um servidor de cache como o Varnish. Se você estiver fazendo isso, realmente não importa se a origem é Node ou Nginx ou Apache.
Advertência com o nginx especificamente: se você estiver usando websockets, use uma versão recente do nginx (> = 1.3.13), pois ele acabou de adicionar suporte para atualizar uma conexão para usar websockets.
:80sem executar o nó como raiz, simplesmente usando o authbind: thomashunter.name/blog/using-authbind-with-node-js
Apenas para adicionar mais um motivo à resposta do pauljz, eu uso um servidor front-end para que ele possa exibir 502 páginas de erro ao reiniciar o servidor back-end ou ele travar por algum motivo. Isso permite que seus usuários nunca obtenham um erro ao não conseguir estabelecer uma conexão.
É minha convicção que usar o Node para servir arquivos estáticos é bom em todas as circunstâncias , desde que você saiba o que está fazendo . Certamente é um novo paradigma usar o servidor de aplicativos para servir arquivos estáticos, já que tantas (todas?) Tecnologias concorrentes (PHP, Ruby, Python, etc) exigem um servidor Web como HTTPD ou Nginx na frente do (s) servidor (es) de aplicativos .
Todo motivo objetivo que eu já li sobre a veiculação de arquivos estáticos com o Node gira em torno da idéia de usar o que você sabe melhor ou usar o que é percebido como melhor testado / mais estável. Essas são razões muito válidas na prática, mas têm pouca relevância puramente técnica.
A menos que você encontre um recurso possível com um servidor Web clássico que não seja possível com o Node (e duvido que sim), escolha o que você sabe melhor ou com o que você prefere trabalhar, pois qualquer uma dessas abordagens é adequada.
Quanto ao Nginx vs Apache - eles "brincam" com o Node da mesma forma. Você deve compará-los sem considerar o nó.
systemd, pm2etc. Portanto, há vantagens e desvantagens eo usuário deve escolher o seu veneno, por assim dizer .
express.staticmanipulará ETags e cabeçalhos de controle de cache muito bem.