Ich habe wenig Erfahrung im Design von Website-Infrastrukturarchitekturen. Ich weiß, dass es situationsspezifisch sein könnte. Die Website soll:
1) Benötigen Sie HTTPS-Unterstützung für einige Seiten (z. B. Anmeldeseite), während andere nur HTTP-Seiten sind.
2) Benötigen Sie mehrere Webserver, damit ein gewisser Lastausgleich erforderlich ist.
3) Benötigen Sie HTTP-Caching und -Komprimierung, um die Leistung zu steigern.
4) Einige Anforderungen (z. B. das Hochladen von Bildern) sollten an dedizierte Backend-Server weitergeleitet werden. Daher ist ein URL-basierter Ausgleich erforderlich.
Ich weiß, dass NginX und HAProxy beide nette Open-Source-Reverse-Proxys und / oder Load Balancer sind. Da HAProxy SSL nicht unterstützt, ist der Nginx-Lastausgleich nicht so gut wie HAProxy. Ich werde beide nehmen.
Sollte ich Nginx (als Reverse-Proxy) vor HAProxy (als Load Balancer) oder gegenüber setzen?
Vielen Dank
quelle
Haproxy seit Version 1.5, das 2014 veröffentlicht wurde , unterstützt SSL wie ein Zauber, einschließlich SNI.
Deshalb würde ich Haproxy vor Nginx stellen.
quelle
Sie sollten nur nginx verwenden, es macht alles, was Sie als Frontend-Webserver benötigen. Wenn Sie einen Front-End-Lastausgleich benötigen, verwenden Sie einen L3-Lastausgleich wie Linux Virtual Server , da dieser nicht wie HAproxy im Weg steht. Verwenden Sie HAproxy, wenn dies erforderlich ist, um einen Lastausgleich hinter den Kulissen durchzuführen, z. B. das Ausgleichen von Anforderungen an einen Pool von Backend-Mitarbeitern.
quelle