Сегодня мы будем изучать основные различия между тремя наиболее популярными решениями Proxy: Nginx, HaProxy и Varnish. Когда ваше приложение растет, вам необходимо масштабировать в целях поддержки трафика, DevOps и SysAdmins выбрать из этих трех вариантов прокси для установки их на серверах.
Давайте попробуем посмотреть сначала, что такое прокси-сервер, и краткое введение в сервера, а затем сравним поддерживаемые функции каждой из них.
Прокси это сервер, который действует в присутствии других внутренних серверов. Прокси — серверы используются для балансировки трафика, поддержка всплесков трафика, защиты от DDOS атак и достижения высокой доступности для веб — приложений.
Varnish представляет собой обратный HTTP прокси-сервер и ускоритель предназначен для сайтов с большим трафиком. В отличие от других, он позволяет только прокси-сервер и балансировки нагрузки HTTP-трафика. Varnish используется Wikipedia, NY Times, The Guardian и многие другие. Разработанный с 2006 года.
Является веб-сервером номер # 1, балансировка нагрузки и прокси-решения для сайтов с большим трафиком. Он активно развивается, предлагает бесплатную версию и версию предприятия. Используется в самых оживленных сайтах в мире, как: WordPress.com, Zynga, Airbnb, Hulu, MaxCDN, является одним из лучших ведущих программных решений для достижения высокой доступности и надежной балансировки нагрузки.
HAProxy является свободным и с открытым исходным кодом, который обеспечивает балансировку нагрузки и возможности прокси-сервера для протоколов TCP / HTTP. Он хорошо известен, чтобы быть быстрым и потреблять мало системных ресурсов (использования памяти CPU). Он совместим с Linux, Solaris, FreeBSD и Windows. Он активно развивается с 2002 года.
Важно: это основное сравнение, а не полный детальное сравнение. Если вам нужно полную информацию о каждом сервере, ознакомьтесь, пожалуйста, с официальными документами каждого продукта.
Особенности | Nginx | HAProxy | Varnish |
Полный веб-сервера Стек | да | Нет | Нет |
Асинхронный параллелизм | да | да | Нет |
Балансировка нагрузки | да | да | да |
SSL Разгрузка | да | да | Нет |
Динамические модули | да | Нет | да |
Консоль администрирования | да | да | да |
RealTime статистика | да | да | да |
Поддержка HTTPD/2 | да | да | Нет |
Поддержка Windows | да | да | да |
Proxy Caching | да | да | да |
TCP Proxy/LB | да | да | да |
UDP Proxy/LB | да | Нет | Нет |
Почта прокси | да | да | Нет |
Коммерческая версия | да | да | да |
Активно развивается | да | да | да |
Как мы видели в сравнении Nginx, HAProxy и Varnish, три части программного обеспечения являются большими для прокси-решений, однако, Nginx имеет большое преимущество, не только как прокси-сервер, но и полный стек веб-сервера, и имеет больше возможностей, чем HAProxy и Varnish.
Так что, если вы собираетесь выбрать один, то наше предложение пойти на Nginx, так как он может поместиться во многих сценариях, так что начать использовать Nginx сначала, как он может выступать в качестве веб-сервера, HTTP прокси-сервер, почтовый прокси-сервер и балансировки нагрузки в случае необходимости.
Наш второй выбор, если вы абсолютно уверены, что вам не нужен полный веб-сервер, стек HAProxy, имеет множество функций и супер легкий с точки зрения использования системных ресурсов.
К сожалению, Varnish становится устаревшим программным обеспечением для современных веб — приложений, тем более после запуска HTTP/2, что они не думают, чтобы быть достаточно интересным , чтобы выпустить поддерживаемой версию HTTP/2.
Дополнительное чтение: