2012-10-29 4 views
1

배경 정보 : 단일 nginx 기반로드 밸런서 뒤에있는 두 개의 노드에서 Play Framework 기반 애플리케이션을 실행합니다. 소프트웨어 업데이트는 Jenkins의 맨 위에 자동화되어 있습니다. 응용 프로그램은 Supervisord 프로세스 관리자 맨 위에서 실행됩니다.가동 중지 시간없이 애플리케이션 서버를 업데이트하는 방법

질문 : 소프트웨어 업데이트 중에 서비스가 실행되도록 노드에 소프트웨어를 업데이트하는 올바른 방법은 무엇입니까?

해결 방법 1 : 노드에서 포트 80을 비활성화하고 소프트웨어가 업데이트되고 노드 준비가 완료되면 엽니 다. 로드 밸런서는 요청을 다른 노드로 자동 전달해야합니다.

해결 방법 2 : 소프트웨어 업데이트 중에로드 밸런서에서 노드를 비활성화하십시오. 나는이 해결책을 개인적으로 좋아하지 않는다. 로드 밸런서 구성을 변경하면 너무 위험합니다. 또한 변경 사항을 사용하려면 nginx를 다시 시작해야합니다.

다른 접근 방식을 제안 하시겠습니까?

답변

3

도움이 될지 모르지만 nginx reload는 우아하고 운반 및 가동 중지 시간이 없습니다.

예를 들어보세요. here

관련 문제