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

Переключение серверов вручную в среде Apache / mod_jk / Tomcat с балансировкой нагрузки

Наша установка предполагает наличие двух внешних WWW-серверов, использующих Apache1.3 и mod_jk, и двух серверов приложений с Tomcat. Нагрузка внешних серверов прозрачно балансируется с помощью sticky_sessions.

Однако иногда нам нужно проверять тот или иной внутренний сервер, чтобы устранить проблемы с синхронизацией (и т. Д.). В настоящее время наше единственное решение - отредактировать файл cookie «липкого сеанса» (т. Е. Изменить server1 в JSESSIONID=1L0NGS3SS10NSTR1NG.server1), но это кажется непоследовательным и требует некоторого редактирования файлов cookie на низком уровне.

Есть ли здесь лучшее решение для «переопределения» балансировки нагрузки?

Запустите Apache на общедоступных серверах и используйте балансировщик нагрузки TCP для распределения нагрузки. Дайте каждому из интерфейсных серверов уникальное имя на его собственном IP-адресе и настройте Apache для ответа как на имя хоста с балансировкой нагрузки, так и на машинно-зависимое с одной и той же конфигурацией vhost. Тогда ты можешь просто ударить http://machine1.example.com/ или http://machine2.example.com/ для проверки каждой машины.

В моей конфигурации с балансировкой нагрузки приложение / status и приложение / jconsole сбалансированы по нагрузке, и если мне нужно увидеть определенного члена в моем кластере, я могу повторно обновлять эти два приложения, и требуется всего несколько обновлений, чтобы получить узел, который я хочу изучить, чтобы ответить.

просто измените конфигурацию mod_jk и удалите одного кота из кластера. после изящного перезапуска вашего apache каждый запрос переходит к желаемому коту. когда вы закончите тестирование, вы просто вернете второй tomcat в конфигурацию и снова выполните изящный перезапуск вашего apache.

вы также можете изменить lbfactor кота, который вы хотите отключить, и выполните тот же изящный перезапуск.