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

балансировка нагрузки на прокси-сервере Squid

Как я могу настроить что-то для некоторых пользователей Squid, чтобы они использовали другой сервер, если основной сервер не работает?

Эту проблему можно решить простым запуском тактового сигнала Linux на двух серверах. Вы определяете виртуальный IP-адрес, принадлежащий основному серверу, в случае отказа основного сервера IP-адрес переключается на резервный (убедитесь, что вы скопировали файлы конфигурации!). С помощью Heartbeat вы можете выполнять проверки, чтобы убедиться, что процесс Squid запущен, он может получить доступ к Интернету (если это требуется) и т.д., прежде чем решить, какой сервер станет главным.

http://www.linux-ha.org/wiki/Main_Page

Самый простой способ сделать это - иметь еще один сервер squid в том же сегменте сети и использовать heartbeat для совместного использования виртуального IP-адреса между ними. Затем вы настраиваете клиентов на использование VIP, и когда первичный сервер выходит из строя, он прозрачно переключается на вторичный, не требуя никаких изменений на машине пользователя.

Если вы используете Centos / redhat, это особенно просто. Установите пакет heartbeat и измените два файла /etc/ha.d/ha.cf и /etc/ha.d/haresources (предполагая реальные IP-адреса 1.2.3.11 и 12 для компьютеров A и B соответственно, и 1.2.3.10. для VIP):

на машине A добавьте в ha.cf:

ucast eth0 1.2.3.12

узел {fqdn.machine.a} узел {fqdn.machine.b}

на машине B добавьте ha.cf:

ucast eth0 1.2.3.11

узел {fqdn.machine.a} узел {fqdn.machine.b}

в haresources на обоих: {fqdn.machine.a} 1.2.3.10/24/eth0

Теперь перезапустите службу Heartbeat на обоих, настройте squid для прослушивания на всех интерфейсах, и все готово. Это делает не отказать, если машина остается включенной, но кальмар выходит из строя. Это немного сложнее (хотя и выполнимо).