У меня настроена кластеризация apache-tomcat (серверы Ubuntu), и я использовал технику кластеризации, поддерживаемую tomcat, с mod_jk после ссылка на сайт что понятно и легко понять.
Я сделал это в своей локальной сети с помощью three computers 1 as LB and other two as tomcat web servers
и я подумал о внедрении этого в производство, когда я полностью удовлетворен настройкой.
Я перешел по многим ссылкам, и вставленная мной ссылка является одной из них, и я настроил ее на другом физическом компьютере. Конфигурация successful
и я почувствовал, что это очень легко настроить. Я проверил остановку одного веб-сервера tomcat, и он немедленно начал отправлять запрос на другой веб-сервер. Насколько я знаю, мне ясно, что эта конфигурация поддерживает как HA, так и LB.
Ниже приведены мои детали кластеризации apache tomcat:
1 Load Balancer(192.168.1.100)
2 web Servers(192.168.1.101, 192.168.1.102)
On all the three servers, I installed apache2 & tomcat6 and configured tomcat to run on port 80 with mod_jk on all the servers.
Load Balancer:
Configured apache2 and tomcat with mod_jk setup(both are running on port 80)
As per the link I setup workers.properties with same default ports(as I'm using different machines)
Web Servers:
Let Actual site: www.mydomain.com which is pointing to LB
Configured apache2 and tomcat with mod_jk setup(both are running on port 80)
I can access web application by pointing the browser to following:
http://192.168.1.101/myapp
http://192.168.1.102/myapp
In either of the web servers I configured tomcat virtual hosting with actual site name(www.mydomain.com) as Host Name
У меня проблема с приложением tomcat jsp. На любом веб-сервере, если myapp
каталог удаляется из веб-приложений, балансировщик нагрузки по-прежнему перенаправляется на этот веб-сервер, и пользователь должен столкнуться с 404
страница ошибки, которую ни apache, ни tomcat не идентифицируют и не перенаправляют на другие доступные веб-серверы.
У кого-нибудь есть метод, позволяющий перенаправлять запросы клиентов на другие веб-серверы в кластере, когда запрошенное приложение (myapps) в веб-приложениях недоступно на веб-сервере?
Спасибо!
Обновить: 1
Попытка выполнить указанную ниже рабочую директиву в workers.properties
из load balancer
. Сейчас 404
страница ошибки не отображается, когда myapp
в веб-приложениях удаляется, но отображается 503
ошибка (обычно это отображается, когда tomcat остановлен). Но все равно не удалось перенаправить на другой доступный сервер, когда myapps удален.
worker.<worker-name-here>.fail_on_status=-404,-500,503
Я настоятельно рекомендую использовать инструмент, предназначенный для балансировки нагрузки, такой как haproxy. Вы можете определить внутренние проверки и, таким образом, избежать отправки запросов в недоступные приложения с большой гибкостью.
Ваше решение также не является HA, поскольку балансировщик нагрузки - это SPOF (единственная точка отказа). Вы можете добавить еще одну машину и использовать keepalived для отработки отказа.
HAproxy может работать на любом порту, который вы хотите, вы даже можете балансировать различные виды трафика, не только http, и в то же время настраивать внешние интерфейсы (точки входа для балансировки служб) и бэкэнды (контейнер для экземпляров служб и поведение балансировки). Вы можете увидеть здесь пример: http://www.tomcatexpert.com/blog/2010/07/12/trick-my-proxy-front-tomcat-haproxy-instead-apache
Что касается аварийного переключения, я бы использовал keepalived. Он проверяет, доступен ли ваш активный балансировщик нагрузки, и переключается на вторичный компьютер, если его нет, перемещая ваш виртуальный IP-адрес.
Вы можете проверить эту ссылку для примера: http://www.howtoforge.com/setting-up-a-high-availability-load-balancer-with-haproxy-keepalived-on-debian-lenny