LINUX.ORG.RU
ФорумAdmin

кластер для squid


0

1

Собираю кластер для squid(пока из двух машин, в будущем, возможно, буду добавлять). Цели кластера - отказоустойчивость и балансировка нагрузки(нынешний сервер обслуживает около 3,5к пользователей, хочу распределить эту нагрузку).

Пробую на CentOS 6.2 и piranha(lvs, nanny, pulse) и возникли несколько вопросов:

- есть ли смысл поднимать и lvs-роутер, и squid на одной машине?

- если есть(как я пока и пробую), как заставить это работать? У меня пока работает виртуальный IP и по нему я имею доступ к вроде как кластеризованному прокси, но если «уронить» активный сервер, backup-сервер не подхватывает запросы, да и балансировка нагрузки, судя по всему, не работает.

Конфиги:

/etc/sysconfig/iptables

*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -d 10.1.6.16/32 -p tcp -m tcp --dport 8080 -j REDIRECT
-A PREROUTING -d 10.1.6.16/32 -p tcp -m tcp --dport 80 -j REDIRECT
-A PREROUTING -p tcp -d 10.1.6.16/32 --dport 8080 -j MARK --set-mark 443
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 631  -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1344  -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3636 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 539 -j ACCEPT


-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

/etc/sysconfig/ipvsadm

-A -t 10.1.6.16:8080
-a -t 10.1.6.16:8080 -r 10.1.6.14 -m
-A -t 10.1.6.16:80
-a -t 10.1.6.16:80 -r 10.1.6.14 -m
/etc/sysconfig/ha/lvs.cf
serial_no = 69
primary = 10.1.6.14
service = lvs
backup_active = 1
backup = 10.1.6.15
heartbeat = 1
heartbeat_port = 539
keepalive = 5
deadtime = 15
network = direct
debug_level = NONE
monitor_links = 1
syncdaemon = 1
virtual squid {
     active = 1
     address = 10.1.6.16 eth0:1
     vip_nmask = 255.255.255.255
     fwmark = 443
     port = 8080
     use_regex = 0
     load_monitor = none
     scheduler = lc
     protocol = tcp
     timeout = 5
     reentry = 15
     quiesce_server = 0
     server s-proxy0 {
         address = 10.1.6.14
         active = 1
         weight = 1000
     }
     server s-proxy1 {
         address = 10.1.6.15
         active = 1
         weight = 1000
     }
}
virtual apache {
     active = 1
     address = 10.1.6.16 eth0:2
     vip_nmask = 255.255.255.255
     port = 80
     send = "GET / HTTP/1.0\r\n\r\n"
     expect = "HTTP"
     use_regex = 0
     load_monitor = none
     scheduler = lc
     protocol = tcp
     timeout = 5
     reentry = 15
     quiesce_server = 0
     server s-proxy0 {
         address = 10.1.6.14
         active = 1
         weight = 1000
     }
     server s-proxy1 {
         address = 10.1.6.15
         active = 1
         weight = 1000
     }
}



Последнее исправление: uninvisible (всего исправлений: 1)

Сквиду не нужны костыли, он сам прекрасно способен выстраиваться в кластер.

Если нагрузку именно «по входу» делить хочется то крутить dns сервер, файл автоконфигурации, dhcp (если повезло и система воспринимает выдаваемые им параметры :).

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Сквиду не нужны костыли, он сам прекрасно способен выстраиваться в кластер.

Но как?

Если нагрузку именно «по входу» делить хочется то крутить dns сервер

Если речь о Round Robin, то не хочу. Хочется чего-то, чем можно хоть как-то управлять.

файл автоконфигурации, dhcp (если повезло и система воспринимает выдаваемые им параметры :).

В этом месте вообще ничего не понял:)

uninvisible
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.