2015-01-27 5 views
3

В моей среде у меня есть HAproxy баланс нагрузки 2 веб-серверов (Apache), это моя конфигурация HA Proxy:Как сделать HA Proxy KeepAlive

global 
    log   127.0.0.1 local2 

    chroot  /var/lib/haproxy 
    pidfile  /var/run/haproxy.pid 
    maxconn  4000 
    user  haproxy 
    group  haproxy 
     tune.ssl.default-dh-param 2048 
    daemon 
     nbproc  1 
    stats socket /var/lib/haproxy/stats 
     stats  timeout 1m 
     nogetaddrinfo 
listen front 
    bind :80 
    redirect scheme https if { hdr(Host) -i domain.com } !{ ssl_fc } 
listen front_ssl 
    bind :443 ssl crt /opt/certificate/domain.pem 
    mode http 
     option dontlognull 
    stats  enable 
    stats  uri /ha?stats 
    stats  realm system 
    stats  auth root:********* 
    stats  refresh 5s 
    option http-keep-alive 
    option forwardfor 
    option redispatch 
    reqadd X-Forwarded-Proto:\ https if { ssl_fc } 
     timeout client 15s 
     timeout connect 3s 
     timeout server 15s 
     timeout http-request 15s 
     timeout http-keep-alive 15s 
     default_backend bk_http 
backend bk_http 
     mode http 
     balance source 
     option http-keep-alive 
     default-server inter 1s 
     retries 3 
     timeout connect 3s 
     timeout server 15s 
     timeout queue 60s 
     timeout check 10s 
     timeout http-request 15s 
     timeout http-keep-alive 15s 
     server node1 1.2.3.4:82 check id 1 weight 1 maxconn 2000 maxqueue 2000 
     server node2 5.6.7.8:82 check id 1 weight 1 maxconn 2000 maxqueue 2000 

"KeepAlive On" в/и т.д./HTTPD/Conf /httpd.conf Но когда я проверяю с завитком, я вижу, что KeepAlive не работает:

curl -Iv http://domain.com 2>&1 | grep -i 'connection #0' 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0* Closing connection #0 
curl -Iv https://domain.com 2>&1 | grep -i 'connection #0' 
* Closing connection #0 

Как я знаю, если KeepAlive работает, результат должен быть:

0 162 0  0 0  0  0  0 --:--:-- 0:00:05 --:--:--  0* Connection #0 to host domain.com left intact 
* Closing connection #0 

Пожалуйста, дайте мне знать, если что-то не так в моей конфигурации?

+0

В отличие от сайтов форума, мы не используем «Спасибо», или «Любая помощь приветствуется», или подписи на [так ].См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -Свободно от сообщений). Кстати, это «Спасибо заранее», а не «Спасибо в продвинутый». –

ответ

5

У вас есть правильная конфигурация. Вам просто требуется option http-keep-alive, который по умолчанию имеет значение haproxy 1.5. Проверьте, какая версия установлена.

См http://www.haproxy.org/download/1.5/doc/configuration.txt раздел 4. Proxies

В режиме HTTP, обработка применяется к запросам и ответам, протекающим через соединение, зависит в комбинации опций HTTP во внешних интерфейсе и в Бэкэнде лет. HAProxy поддерживает 5 режимов соединения:

  • Кал: сохранить в живых («вариант HTTP-держать-жив»), который является режимом по умолчанию: все запросы и ответы обрабатываются, и соединения остаются открытыми, но простаивает между ответами и новые запросы.

  • TUN: туннель («вариант HTTP-туннель»): это режим по умолчанию для версий 1,0 до 1,5-dev21: только первый запрос и ответ обрабатываются, и всего остального передаются без какого-либо анализа на все. Этот режим не должен использоваться , так как он создает множество проблем с протоколированием и обработкой HTTP.

  • PCL: пассивный близко («вариант httpclose»): точно так же, как и в туннельном режиме, , но с «Connection: близко» добавляется в обоих направлениях, чтобы попытаться сделать оба конца близко после первого запроса/обмена ответа ,

  • SCL: сервер близко («вариант HTTP-сервер-близко»): сервер-облицовочный соединение закрывается после окончания реакции получено, но клиент-облицовочного подключение остается открытым.

  • FCL: принудительное закрытие («опция forceclose»): соединение активно закрывается после окончания реакции.

Ваш движки, node1/node2, вероятно, закрывая соединение. У них может быть не включено keepalives.

Если перехватить контроль трафика для HTTP/1.1 и нет «Подключение: закрыть» заголовок

 Смежные вопросы

  • Нет связанных вопросов^_^