Сравнение Nginx, HaProxy и Varnish

Thank you for reading this post, don't forget to subscribe!

Прок­си это сер­вер, кото­рый дей­ству­ет в при­сут­ствии дру­гих внут­рен­них сер­ве­ров. Прок­си – сер­ве­ры исполь­зу­ют­ся для балан­си­ров­ки тра­фи­ка, под­держ­ка всплес­ков тра­фи­ка, защи­ты от DDOS атак и дости­же­ния высо­кой доступ­но­сти для веб – приложений.

Varnish

Varnish пред­став­ля­ет собой обрат­ный HTTP прок­си-сер­вер и уско­ри­тель пред­на­зна­чен для сай­тов с боль­шим тра­фи­ком. В отли­чие от дру­гих, он поз­во­ля­ет толь­ко прок­си-сер­вер и балан­си­ров­ки нагруз­ки HTTP-тра­фи­ка. Varnish исполь­зу­ет­ся Wikipedia, NY Times, The Guardian и мно­гие дру­гие. Раз­ра­бо­тан­ный с 2006 года.

Nginx

Явля­ет­ся веб-сер­ве­ром номер # 1, балан­си­ров­ка нагруз­ки и прок­си-реше­ния для сай­тов с боль­шим тра­фи­ком. Он актив­но раз­ви­ва­ет­ся, пред­ла­га­ет бес­плат­ную вер­сию и вер­сию пред­при­я­тия. Исполь­зу­ет­ся в самых ожив­лен­ных сай­тах в мире, как: WordPress.com, Zynga, Airbnb, Hulu, MaxCDN, явля­ет­ся одним из луч­ших веду­щих про­грамм­ных реше­ний для дости­же­ния высо­кой доступ­но­сти и надеж­ной балан­си­ров­ки нагрузки.

HAProxy

HAProxy явля­ет­ся сво­бод­ным и с откры­тым исход­ным кодом, кото­рый обес­пе­чи­ва­ет балан­си­ров­ку нагруз­ки и воз­мож­но­сти прок­си-сер­ве­ра для про­то­ко­лов TCP / HTTP. Он хоро­шо изве­стен, что­бы быть быст­рым и потреб­лять мало систем­ных ресур­сов (исполь­зо­ва­ния памя­ти CPU). Он сов­ме­стим с Linux, Solaris, FreeBSD и Windows. Он актив­но раз­ви­ва­ет­ся с 2002 года.

Сравнение Nginx, HaProxy и Varnish

Важ­но: это основ­ное срав­не­ние, а не пол­ный деталь­ное срав­не­ние. Если вам нуж­но пол­ную инфор­ма­цию о каж­дом сер­ве­ре, озна­комь­тесь, пожа­луй­ста, с офи­ци­аль­ны­ми доку­мен­та­ми каж­до­го продукта.

Осо­бен­но­сти 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.