Ответ 1
Фактически вы должны использовать
option http-keep-alive
Вам необходимо убедиться, что ограничения интерфейса достаточно высоки (будьте осторожны с требованиями к памяти), что они могут вместить увеличение количества активных сеансов, что будет выше из-за того, что соединения больше не будут закрыты после каждый запрос.
Следующее, что нужно сделать, чтобы поддержка вашего бэкэнд поддерживала поддержку HAproxy, в противном случае это бесполезно, и вы можете вернуться в режим закрытия http-сервера.
В зависимости от скорости ваших запросов и количества параллельных клиентов вам необходимо настроить timeout http-keep-alive
, чтобы убедиться, что у вас достаточно слотов для подключения к интерфейсу, сохраняя при этом хорошее процентное соотношение повторного использования. Хорошее значение для начала - несколько секунд.
Опция httpclose
должна использоваться только в том случае, если вы хотите закрыть соединение как с сервером, так и с клиентом, что почти никогда не происходит, если клиенты не сломаны. Если у вас есть сервер, который не может справиться с большим количеством запросов на простаивание, вы можете использовать опцию http-server-close
, но все современные веб-серверы к ней хорошо.
Это также поможет с помощью части SSL, поскольку она представляет собой значительный фрагмент фазы подключения (при условии, что для каждого запроса не потребуется SSL-квитирование), но вы можете посмотреть на производительность кеша сеанса SSL и если у вас более одного активного сервера HAproxy, поддержка RFC5077 (требуется v1.6 +).
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#tune.ssl.cachesize https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.ssl.lifetime