У меня мало опыта в разработке инфраструктуры веб-сайтов. Я знаю, что это может быть конкретной ситуацией. Веб-сайт должен:
1) Нужна поддержка HTTPS для некоторых страниц (например, страницы входа в систему), в то время как другие просто HTTP-страницы.
2) Требуется несколько веб-серверов, так что требуется некоторая балансировка нагрузки.
3) Требуется HTTP-кэширование и сжатие для повышения производительности.
4) Некоторые запросы (например, загрузка изображений) следует направлять на выделенные внутренние серверы. Итак, балансировка на основе URL обязательна.
Я знаю, что NginX и HAProxy являются хорошим обратным прокси-сервером с открытым исходным кодом и / или балансировщиком нагрузки. Поскольку HAProxy не поддерживает SSL, балансировка нагрузки Nginx не так хороша, как HAProxy. Я возьму оба.
Итак, я должен поставить Nginx (в качестве обратного прокси) перед HAProxy (как балансировщик нагрузки), или напротив?
Спасибо
источник
haproxy начиная с версии 1.5, выпущенной в 2014 году , действительно поддерживает SSL, включая SNI.
Поэтому я бы поставил haproxy перед nginx.
источник
Вам просто нужно использовать nginx, он делает все, что вам нужно, как веб-сервер внешнего интерфейса. Если вам нужна балансировка нагрузки на стороне, используйте балансировщик нагрузки L3, такой как Linux Virtual Server , потому что он не мешает, как HAproxy. Используйте HAproxy, если требуется, чтобы выполнить внутреннюю балансировку нагрузки, такую как балансировка запросов к пулу бэкэнд-работников.
источник