Comments 25
Выглядит многообещающим! Всегда пользовался nginx для проксирования, сейчас вот задумался…
0
а напомните: он чем-то архитектурно внутри от nginx отличается?
0
Он делает активные проверки, которые в Nginx поддерживаются только в платной версии.
0
Можете, пожалуйста, привести пример платных проверок?
0
Почти все фичи ngx_http_upstream_module относятся к платной версии. Ещё в бесплатной версии нет L4 прокси.
0
Это неправда, stream proxy доступен бесплатно: nginx.org/ru/docs/stream/ngx_stream_core_module.html
0
Спасибо за информацию, а есть планы по его включению в основную сборку?
0
В основную сборку? Если вы про наши пакеты на nginx.org/en/linux_packages.html, то он там включен.
0
В отличие от haproxy, nginx имеет мастер-процесс и непривелигированные рабочие процессы, что позволяет ему перезагружать конфигурацию и обновляться на новую версию без потери соединений.
0
HAProxy тоже вполне себе перезагружается без потери соединений, просто несколько иначе:
1. Создаётся новый процесс и слушающий коннекты сокет переходит к нему
2. Новые соединения уходят в новый процесс
3. Старый процесс живёт до тех пор, пока все старые соединения не завершатся
1. Создаётся новый процесс и слушающий коннекты сокет переходит к нему
2. Новые соединения уходят в новый процесс
3. Старый процесс живёт до тех пор, пока все старые соединения не завершатся
+1
Зачем же тогда люди так извращаются: engineeringblog.yelp.com/2015/04/true-zero-downtime-haproxy-reloads.html?
0
UFO just landed and posted this here
Правильно, речь о том, что в haproxy отсутствует возможность перезагрузки без потери соединений.
0
У haproxy очень развесистая и настраеваемая архитектура в месте взаимодействия процессов системы между собой.
И с помощью правильно подобранных значений параметров:
Использование же параметра сокета SO_REUSEPORT, о которой говорится в статье от yelp, с одной стороны позволяет получить уменьшение лейтенси ответа и улучшения среднеквадратического отклонения, а с другой по понятным причинам создаёт почву для фейлов запросов. Около ~0.01% по данным haproxy:
В официальном блоге nginx про это тоже есть статья, описывающая полезность SO_REUSEPORT: www.nginx.com/blog/socket-sharding-nginx-release-1-9-1
И с помощью правильно подобранных значений параметров:
process
, bind-process
и nbproc
( www.haproxy.org/download/1.6/doc/management.txt, www.haproxy.org/download/1.6/doc/configuration.txt) можно добиться того же поведения, что используется в логике nginx. Использование же параметра сокета SO_REUSEPORT, о которой говорится в статье от yelp, с одной стороны позволяет получить уменьшение лейтенси ответа и улучшения среднеквадратического отклонения, а с другой по понятным причинам создаёт почву для фейлов запросов. Около ~0.01% по данным haproxy:
Typically observed failure rates are around
1 failure during a reload operation every 10000 new connections per second,
which means that a heavily loaded site running at 30000 new connections per
second may see about 3 failed connection upon every reload.
В официальном блоге nginx про это тоже есть статья, описывающая полезность SO_REUSEPORT: www.nginx.com/blog/socket-sharding-nginx-release-1-9-1
0
К слову, чтобы обновить nginx на новую версию его всё равно придётся перезапускать — мастер процесс то форкает детей из себя. И если его не перезапустить — версия будет старой.
0
В какой-то момент просто работает два мастера и два поколения рабочих процессов. После того, как вы убедились, что всё впорядке, вы можете плавно завершить старые рабочие процессы. Процедура подробно описана в документации, nginx при этом не потеряет ни одного соединения. В отличие от haproxy, он не использует SO_REUSEPORT для этой цели.
+1
без потери входящих или без разрыва открытых?
0
Уважаемые господа!!!
Полелитесь опытом, нужно настроить балансировку СП Tomcat, который работает по проприетарному протоколу поверх tcp.
http mode не подходит, с tcp mode работает, но Проблема в сохранении реального ip клиента, что очень важно. Как быть?
Полелитесь опытом, нужно настроить балансировку СП Tomcat, который работает по проприетарному протоколу поверх tcp.
http mode не подходит, с tcp mode работает, но Проблема в сохранении реального ip клиента, что очень важно. Как быть?
0
Возможно, вам подойдет haproxy transparent mode
0
Очень и очень объемно! Спасибо.
По поводу lua прикольно. Nginx прикалывается по поводу JS, а haproxy внедряет lua.
Честно говоря js ближе.
Вопрос только как скажется на производительности добавление lua?
По поводу lua прикольно. Nginx прикалывается по поводу JS, а haproxy внедряет lua.
Честно говоря js ближе.
Вопрос только как скажется на производительности добавление lua?
0
Nginx по Lua уже наприкалывался, наскучило )
0
Sign up to leave a comment.
HAProxy исполнилось 1.6