2009-11-23 9 views
1

동적 웹 사이트를 실행할 예정이며 서버가 응답을 멈추는 경우 "유지 관리를 위해 다운되었습니다"페이지가 표시된 정적 웹 사이트로 장애 조치하고 싶습니다. 나는 읽고 DNS를 동적으로 전환하는 것이 옵션 일 수 있다는 것을 알았지 만 그 변경이 얼마나 빨리 이루어질 것인가? 그리고 모든 사람들이 즉시 그 변화를 보게 될 것입니까? 다른 서버로 장애 조치하는 더 좋은 방법이 있습니까?웹 서버 장애 조치

+0

를이 유형의 질문은 더 나은 serverfault.com에 – mjv

답변

1

DNS에는 TTL (Time To Live)이 있으며 TTL이 만료 될 때까지 캐싱됩니다. 따라서 DNS 컷오버는 이 아니며 바로이 아닙니다. 사이트의 캐시 된 DNS 조회가있는 모든 사용자는 여전히 이전 값을 사용합니다. 당신은 미친 듯이 짧은 TTL을 설정할 수 있지만 이것은 성능에있어 진절머리 나게합니다. DNS는 현재하고있는 일을 성취하기위한 올바른 방법이 아닙니다.

부하 분산 장치는 이러한 종류의 즉시 전환을 수행 할 수 있습니다. 모든 트래픽은 항상 정상적인 상황에서 주 웹 서버에 대한 요청을 프록시하는로드 밸런서에 먼저 도달합니다. 웹 서버가 손상된 경우로드 균형 조정기를 사용하여 모든 웹 트래픽을 장애 조치 웹 서버로 보낼 수 있습니다.

+0

덕분에 해결! 이것은 정확히 내가 찾고있는 정보입니다. 나는 DNS 변경이 너무 오래 걸릴 것을 염려했다. 두 개의 별도 위치에 서버가있는 경우 기본 서버가 다운 된 경우 부하 분산 장치를 사용하여 다른 서버로로드를 전환 할 수 있습니까? – mike

+0

@yummm :로드 밸런서가 요청을 처리하는 한,로드 밸런서는 요청할 때마다 지시합니다. BTW는 일반적으로로드 밸런서와 라우트하는 웹 서버가 물리적으로 (같은 건물에서) 가까이 있습니다. 또한 하드웨어로드 밸런서에 대한 액세스 권한이없는 경우 F5 (비싼!), 소프트웨어로드 밸런서 (StackOverflow에서 사용하는) 인 haproxy를 살펴보십시오. – Asaph

+0

유일한 문제는 Windows 서버에 있습니다. haproxy는 창을 지원하지 않습니다. 당신이 알고있는 비슷한 것이 있고 창문으로 작동하는 기계에서 작동합니까? – mike

0

파운드, perlbal 또는 다른 소프트웨어로드 밸런서는 예

는 심지어 아파치는이 허용 할 수있는 규칙을 재 작성, 내가 믿는, 그렇게 할 수 있을까? 하지만 동적 서버를 사용할 수없는 경우 분기하는 방법이 있는지 잘 모르겠습니다. 원하는대로 Apache 404 응답을 사용자 정의 하시겠습니까?

0

먼저 무엇이 장애가 되길 원합니까? 장애가 발생하면 app/db 오류가 발생하고 서버가 남아 있으면 일부 임시 점검을 수행하고 다른 임시 페이지로 장애 조치를 수행하는 스크립트를 만들 수 있습니다. (아파치 설정 또는 .htaccess 변경) 하드웨어 페일 오버 인 경우 DNS 솔루션은 괜찮지 만 즉각적인 것은 아니므로 일부 사용자 트래픽을 잃을 수 있습니다.

가장 이상적인 해결책은 HTTP 요청을 적어도 2 개의 웹 서버로 전달하고 그 중 하나가 실패하고 작동중인 것으로 전환되는지 자동으로 탐지하는 프록시 (예 : HAProxy)를 사용하는 것입니다. 당신이 아마존 AWS를 사용하는 경우

당신은 ELB를 사용할 수 있습니다 - 탄성로드 밸런서에게

관련 문제