2011-12-01 7 views
4

로드 균형 조정을 위해 apache http 및 mod_jk를 사용하고 있습니다. Tomcat 인스턴스 중 하나가 종료 된 경우 고정 세션을 사용하는 동안 요청이 다른 노드로 리디렉션됩니다. 어떤 이유로 응용 프로그램이 종료되었지만 바람둥이가 살아 있다면 요청은 죽은 응용 프로그램이있는 노드로 계속 이동합니다. 어떤 아이디어가 이것을 해결하는 방법?Apache Http mod_jk로로드 균형 조정 장애 복구

아래에서 worker.properties 파일을 잘 볼 수 있습니다.

worker.list=myworker 

worker.myworker1.port=8009 
worker.myworker1.host=host1 
worker.myworker1.type=ajp13 
worker.myworker1.lbfactor=1 

worker.myworker2.port=8009 
worker.myworker2.host=host2 
worker.myworker2.type=ajp13 
worker.myworker2.lbfactor=1 

worker.myworker.type=lb 
worker.myworker.balance_workers=myworker1,myworker2 
worker.myworker.sticky_session=True 

감사!

답변

1

mod_jk는 하트 비트 URL을 핑 (ping)하여 노드 상태를 결정할 수 없습니다.

해결 방법 중 하나는 외부 스크립트를 사용하는 것입니다. 응용 프로그램이 살아 있지 않으면 tomcat 인스턴스를 다시 시작해야합니다.

2

일반적으로 Tomcat이 실행되는 동안 응용 프로그램을 사용할 수없는 경우 404 오류가 발생합니다. 나는 이것을 처리하기위한 worker 지시자가 있다고 생각하고 fail_on_status이고 404 오류를 위해 이것을 사용할 수 있으며이 지시어에 503 오류 코드를 포함 할 필요가 없을 수 있습니다. 이는 아마도 Tomcat이 중지되었다는 것을 의미하며 장애 조치를위한 mod_jk의 작업입니다 다른 작업 노드로. workers.properties (각 작업자에게 추가 된 줄)을 쉼표로 구분 된 다른 오류 코드로 사용해보십시오.

worker.list=myworker 

worker.myworker1.port=8009 
worker.myworker1.host=host1 
worker.myworker1.type=ajp13 
worker.myworker1.lbfactor=1 
#worker.myworker1.fail_on_status=-404,503 
worker.myworker1.fail_on_status=-404 

worker.myworker2.port=8009 
worker.myworker2.host=host2 
worker.myworker2.type=ajp13 
worker.myworker2.lbfactor=1 
#worker.myworker2.fail_on_status=-404,503 
worker.myworker2.fail_on_status=-404 

worker.myworker.type=lb 
worker.myworker.balance_workers=myworker1,myworker2 
worker.myworker.sticky_session=True 
worker.myworker.sticky_session_force=True