Назад | Перейти на главную страницу

Keep-alive не работают для веб-сайтов с NodeBalancer в Linode

У меня следующая конфигурация среза линода

NB <-----> web1 + web2 + web3 Вот скриншот конфигурации с linode:

Нам нужен NB в режиме http, поскольку нам нужно несколько вещей, которые не дает простой режим tcp.

Теперь моя проблема: когда я запускаю что-то вроде webpagetest.org для целей тестирования, я всегда получаю сообщение о том, что в моем домене работают статические ресурсы без сообщений поддержки активности. В режиме TCP поддержка активности в порядке.

Я так понимаю, что haproxy работает как nodebalancer в линоде. Я просто хотел знать, "это известное ограничение NB / haproxy, или я что-то делаю не так ????"

Если я правильно понимаю ваш вопрос, вы говорите, что NodeBalancer основан на HAProxy. Я не могу найти никакой документации, подтверждающей это.

Версии HAProxy до 1.4 не поддерживали HTTP Keep-Alive. Версия 1.4 была выпущена в феврале 2010 года. Если NodeBalancer действительно построен на HAProxy и они использовали версию 1.3, то он не будет поддерживать HTTP Keep-Alive между клиентом и NodeBalancer.

Client Keep-Alive полезен, потому что он экономит одно время приема-передачи на HTTP-запрос. Комбинация Keep-Alive и конвейерной обработки может доставить множество запросов за два периода приема-передачи (один для настройки TCP, один для группы HTTP-запросов), а не два на ресурс без них. Это упрощенный взгляд на вещи, но это хорошее практическое правило.

То, что очень немногие прокси-серверы поддерживают, - это поддержка активности между прокси и внутренними серверами. Это невидимо со стороны клиента, но приводит к передаче нескольких дополнительных пакетов. Это не так важно, как поддержка активности на стороне клиента, поскольку время приема-передачи между прокси и внутренним сервером обычно очень мало.

Согласно Linode Node Balancer документация

TCP: используйте режим TCP для балансировки служб, отличных от HTTP.

HTTP: HTTP KeepAlives принудительно отключены в режиме HTTP.

HTTPS: если выбран HTTPS, ваш NodeBalancer завершит SSL-соединения. Как и в режиме HTTP, KeepAlives будет отключен, а IP-адрес клиента будет указан в заголовке X-Forwarded-For.