J'ai peu d'expérience dans la conception d'architecture d'infrastructure de site Web. Je sais que cela pourrait être spécifique à la situation. Le site Web est censé:
1) Besoin du support HTTPS pour certaines pages (par exemple la page de connexion) tandis que d'autres ne sont que des pages HTTP.
2) Besoin de plusieurs serveurs Web afin qu'un certain équilibrage de charge soit nécessaire.
3) Besoin de mise en cache et de compression HTTP pour améliorer les performances.
4) Certaines requêtes (par exemple le téléchargement d'images) doivent être acheminées vers des serveurs backend dédiés. Un équilibrage basé sur URL est donc requis.
Je sais que NginX et HAProxy sont tous les deux un proxy inverse et / ou un équilibreur de charge open source. Depuis HAProxy ne prend pas en charge SSL, tandis que l'équilibrage de charge Nginx n'est pas aussi bon que HAProxy. Je prends les deux.
Alors, dois-je mettre Nginx (en tant que proxy inverse) devant HAProxy (en tant qu'équilibreur de charge), ou en face?
Merci
la source
haproxy depuis la version 1.5, sortie en 2014 , prend en charge SSL comme un charme, y compris SNI.
Par conséquent, je mettrais haproxy devant nginx.
la source
Vous devez simplement utiliser nginx, il fait tout ce dont vous avez besoin en tant que serveur Web frontal. Si vous avez besoin d'un équilibrage de charge frontal, utilisez un équilibreur de charge L3 tel que Linux Virtual Server , car il ne gêne pas comme le fait HAproxy. Utilisez HAproxy si nécessaire pour effectuer l'équilibrage de charge en arrière-plan, comme l'équilibrage des demandes à un pool de travailleurs backend.
la source