Avantages d'un proxy inversé devant le noeud.JS

Quels sont les avantages d'avoir nginx ou un autre serveur web tournant en tant que mandataire inversé devant le noeud.JS? Que prévoit-elle?

(cette question est destinée aux questions concernant les applications web, pas les pages web).

je vous Remercie.

39
demandé sur JJJ 2011-07-20 18:32:32

2 réponses

je pense que le plus grand avantage est que vous êtes alors en mesure d'utiliser le même port (80) pour plusieurs applications. Sinon, vous aurez besoin d'une nouvelle adresse IP pour chaque application nodejs que vous avez. Selon la façon dont vous configurez les choses, vous pouvez également configurer différents dossiers et sous-domaines pour différentes applications nodejs tournant sur différents ports. Si vous construisez quelque chose de grand ou complexe, c'est assez génial. Imaginez être en mesure d'exécuter vos API sur une application de noeud, votre site web à partir d'une autre, et le Site connecté (zone du membre, tableau de bord, etc.) dans une autre application. Votre équilibreur de charge peut déterminer qui doit aller où (example.com/api* -> api.js, example.com/dashboard * - > tableau de bord.js, example.com - > app.js). Ce n'est pas seulement utile pour la mise à l'échelle, mais aussi quand les choses se brisent, pas tout se casse à la fois.

au truc de la maturité, meh. Nodejs + jamais+ node-http-proxy = incroyable. 1 serveur proxy pour toutes vos applications avec un minimum de configuration / complexité (faible risque d'échec). Alors amusez-vous avec tout le reste. N'oubliez pas de désactiver le pare-feu de vos ports internes, bien que ;).

certaines personnes prennent note de l'équilibrage de la charge, ce qui est vrai, est un avantage. Cependant, l'équilibrage de la charge n'est pas quelque chose dont la plupart des gens bénéficieront, puisqu'un seul filetage NodeJS fileté et non-bloquant peut supporter des charges assez impressionnantes. Je ne considérerais même pas ça comme une différence si j'étais vous. L'équilibrage de charge est facile assez pour mettre en œuvre quand vous en avez besoin, mais autrement totalement inutile jusqu'à ce que vous le faites.

notez également, si vous optez pour une solution de proxy sans noeud (NGINX, tornado, etc.), assurez-vous juste de ne pas utiliser un qui bloque. blocs Apache. Nginx ne le fait pas. Vous ne voulez pas jeter l'un des plus grands avantages de l'utilisation de nodejs en premier lieu sur un serveur minable.

33
répondu 2011-07-20 15:43:33

avoir un logiciel plus évolué comme proxy est meilleur pour la sécurité et la fiabilité. Nginx, Apache et d'autres ont été testés contre une multitude de cas et utilisés en production depuis des années.

vous pouvez également utiliser des fonctionnalités de ces serveurs web que vous auriez autrement à mettre en œuvre vous-même ou utiliser un noeud.module js. Comme la mise en cache, les statistiques, l'équilibrage, etc.

de l'autre côté vous perdre certaines fonctionnalités du nœud.js, fonctionnalités en temps réel comme websockets (sur le port 80, vous pouvez toujours utiliser d'autres ports), la mise en mémoire tampon de la page et, selon le mandataire inversé utilisé, le contrôle de votre cache et de vos en-têtes.

Edit:

9
répondu Diogo Gomes 2015-03-12 00:25:53