Mam niewielkie doświadczenie w projektowaniu architektury infrastruktury witryn internetowych. Wiem, że może to zależeć od konkretnej sytuacji. Witryna ma:
1) Potrzebujesz obsługi HTTPS dla niektórych stron (np. Strony logowania), podczas gdy inne to tylko strony HTTP.
2) Potrzebujesz wielu serwerów WWW, aby wymagane było równoważenie obciążenia.
3) Potrzebujesz buforowania HTTP i kompresji, aby zwiększyć wydajność.
4) Niektóre żądania (np. Przesyłanie obrazu) powinny być kierowane do dedykowanych serwerów zaplecza. Dlatego wymagane jest równoważenie oparte na adresach URL.
Wiem, że NginX i HAProxy są ładnymi otwartymi serwerami proxy i / lub moduł równoważenia obciążenia. Ponieważ HAProxy nie obsługuje SSL, podczas gdy równoważenie obciążenia Nginx nie jest tak dobre jak HAProxy. Wezmę oba.
Czy powinienem więc umieścić Nginx (jako odwrotny serwer proxy) z przodu HAProxy (jako moduł równoważenia obciążenia), czy odwrotnie?
Dzięki
źródło
haproxy od wersji 1.5, wydanej w 2014 roku , obsługuje SSL jak urok, w tym SNI.
Dlatego postawiłbym haproxy przed nginx.
źródło
Powinieneś po prostu użyć nginx, robi wszystko, czego potrzebujesz jako serwer frontendowy. Jeśli potrzebujesz równoważenia obciążenia frontonu, użyj modułu równoważenia obciążenia L3, takiego jak Linux Virtual Server , ponieważ nie przeszkadza on tak, jak robi to HAproxy. Użyj HAproxy, jeśli jest to wymagane, aby wykonać równoważenie obciążenia za kulisami, takie jak żądania równoważenia do puli pracowników zaplecza.
źródło