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

LVS (ipvs) Squid с балансировкой нагрузки. Проблемы с некоторыми сайтами

Я пытаюсь настроить прокси-кластер squid с двумя узлами. Это был бы обычный прокси (ни обратный, ни прозрачный).

Я использую LVS (ядро 2.6.32, ipvsadm v.1.2.1, туннелирование) для балансировки нагрузки, ldirectord (v. 1.0.3) для HA, squid (v.3.1.7) в качестве прокси-сервера.

Кластер работает нормально для большинства сайтов, но возникают проблемы с (например) входом в учетные записи google, входом на serverfault.com через OpenID и т.д. закодированные перенаправления работают нормально. Когда я работаю напрямую через каждый прокси-узел, все в порядке. Я пробовал разные типы алгоритмов планирования заданий в LVS, но это не помогло. Оставление только одного узла в кластере также не решает проблемы. Squid's access.log и cache.log тоже "чистые", ошибок нет, только нормальная работа.

Кто-нибудь сталкивался с такими проблемами? Есть ли у кого-нибудь рабочий кластер такого типа (сбалансированный с IPVS)? Есть идеи по устранению неполадок?

Вот некоторые части файлов конфигурации: ldirectord.cf:

# Virtual Server for HTTP_PROXY
virtual=10.128.0.109:8080
        fallback=127.0.0.1:80
        real=10.128.1.43:8080 ipip 30
        real=10.128.0.106:8080 ipip 40
        service=http_proxy
        request="http://www.google.com/index.html"
        receive="Google Search"
        scheduler=wlc
        #persistent=600
        protocol=tcp
        checktype=negotiate

squid.conf:

http_port 10.128.0.106:8080 # "real" IP of the node
http_port 10.128.0.109:8080 # "Virtual" IP of the cluster on tunl0 interface
http_port 127.0.0.1:8080
cache_mem 300 MB
cache_dir ufs /opt/squid/var/cache 500 16 256
cache_effective_user squid
cache_effective_group squid
visible_hostname AQUA-node
cachemgr_passwd SquidCM all
access_log /opt/squid/var/logs/access.log
logfile_rotate 5

# ICQ connect (experimental)
acl ICQ_ADDR dst 64.12.0.0/16 205.188.0.0/16
acl ICQ_PORT port 5190 443
acl CONNECT method CONNECT
acl ICQ_PROTO proto HTTPS
acl ICQ_DOMAIN dstdomain .icq.com .aol.com .aim.com
always_direct   allow   ICQ_DOMAIN ICQ_PORT CONNECT
always_direct   allow   ICQ_ADDR   ICQ_PORT CONNECT

acl allnet_temp src 10.0.0.0/8
http_access allow allnet_temp

http_access deny all

Если потребуется какая-либо другая информация, просто дайте мне знать.

Попробуйте использовать планировщик lblc, lblcr или sh. lblcr лучше всего подходит для кеш-прокси. Проблемы из-за балансировки циклического соединения.

Есть ли у кого-нибудь рабочий кластер такого типа (сбалансированный с IPVS)? Есть идеи по устранению неполадок?

У меня два http-прокси кластера (10-12 прокси в кластере). Используйте LVS (lblcr, ipip tunneling, squid 2.7 transparent)

Задача решена.

Я построил ванильное ядро ​​2.6.35-7 с pv-ops (были необходимы, потому что балансировщик нагрузки - это паравиртуальная машина), и LVS начал работать по мере необходимости. Может быть, это был регресс в ядре Xenlinux, может быть просто ошибка старой версии. Версии остальных программных компонентов не изменились.

P.S. Спасибо bindbn за советы по выбору планировщика.