Réponses:
Il y a plusieurs bonnes raisons de coller un autre serveur Web devant Node.js:
Je mettrai en garde le deuxième point en disant que vous devriez probablement servir vos fichiers statiques via un CDN ou derrière un serveur de mise en cache comme Varnish. Si vous faites cela, peu importe si l'origine est Node ou Nginx ou Apache.
Attention à nginx en particulier: si vous utilisez des websockets, assurez-vous d'utiliser une version récente de nginx (> = 1.3.13), car il vient juste d'ajouter la prise en charge de la mise à niveau d'une connexion pour utiliser des websockets.
:80sans exécuter le nœud en tant que root en utilisant simplement authbind: thomashunter.name/blog/using-authbind-with-node-js
Juste pour ajouter une raison de plus à la réponse de pauljz, j'utilise un serveur frontal afin qu'il puisse afficher 502 pages d'erreur lorsque je redémarre le serveur principal ou qu'il se bloque pour une raison quelconque. Cela permet à vos utilisateurs de ne jamais obtenir d'erreur sur l'impossibilité d'établir une connexion.
Je pense que l'utilisation de Node pour servir des fichiers statiques est très bien dans toutes les circonstances tant que vous savez ce que vous faites . C'est certainement un nouveau paradigme d'utiliser le serveur d'applications pour servir des fichiers statiques car de nombreuses technologies concurrentes (PHP, Ruby, Python, etc.) nécessitent un serveur Web comme HTTPD ou Nginx devant le ou les serveurs d'applications. .
Chaque raison objective que j'ai jamais lue contre la diffusion de fichiers statiques avec Node tourne autour de l'idée d'utiliser ce que vous connaissez le mieux ou d'utiliser ce qui est perçu comme étant mieux testé / plus stable. Ce sont des raisons très valables sur le plan pratique, mais qui ont peu de pertinence purement technique.
À moins que vous ne trouviez une fonctionnalité possible avec un serveur Web classique qui n'est pas possible avec Node (et je doute que vous le fassiez), choisissez ce que vous connaissez le mieux ou ce que vous préférez travailler avec l'une ou l'autre approche.
Quant à Nginx vs Apache - ils "joueront" avec Node de la même manière. Vous devez les comparer sans tenir compte de Node.
systemd, pm2etc. Donc , il y a des points positifs et négatifs et l'utilisateur doivent choisir leur poison, pour ainsi dire .
express.staticgérera très bien les ETags et les en-têtes de contrôle de cache.