문제

Linux/Apache/Tomcat 스택에서 실행되는 웹 사이트가 있는데, 서버 유지 관리를 위해 몇 달에 한 번씩 자동으로 오프라인 상태가 되어야 하며, 이는 임의의 시간 동안 지속됩니다.Apache가 "서버 유지 관리" 페이지를 게시하고 중단하도록 하는 몇 가지 옵션은 무엇입니까?

쉘 스크립트를 통해 이를 제어할 수 있어야 합니다.(Google에서 제공한 답변은 서버 구성을 수동으로 편집하는 것과 관련이 있으며 오전 3시에 사무실에 있고 싶지 않습니다!) 스크립트를 .htaccess 파일에 드롭하고 완료되면 삭제할 수 있다고 가정합니다. 하지만 그것은 우아하지 않은 것 같습니다.


답변 해설:

마이크의 답변 모범 사례 답변처럼 보이지만 제가 할 일은 아마도 더 비슷할 것입니다. 댄의 대답 왜냐하면 제3자 호스팅 공급자가 로드 밸런서를 제어하는데 저는 그런 혼란스러운 일을 처리하고 싶지 않기 때문입니다.감사해요!

도움이 되었습니까?

해결책

우리는 이를 수행하는 설정을 가지고 있지만 여기에는 단순한 아파치 이상의 기능이 포함되어 있습니다.그 뒤에는 로드 밸런서와 두 개의 서버가 있습니다.두 웹 서버 모두 Apache를 사용하여 웹 사이트를 제공하며 그 중 하나에는 간단한 HTML 유지 관리 페이지를 제공하는 추가 가상 호스트가 있습니다.로드 밸런서에는 요청을 실제 서버로 리디렉션하는 가상 HTTP 서비스가 있습니다.이 가상 서비스에는 세 개의 실제 서버가 있습니다.두 개는 실제 서버이고 세 번째는 유지 관리 페이지를 가리키는 두 번째 서버의 가상 IP입니다.실제 서버에는 가중치가 가장 적은 세 번째 서버에 가중치가 부여되고 로드 밸런서는 고정 가중치 알고리즘을 사용합니다.따라서 어떤 이유로든 실제 웹사이트가 오프라인 상태가 되면 모든 요청이 유지 관리 호스트로 이동하고 사용자에게는 전화번호가 포함된 오류 페이지가 표시됩니다.실제로 저는 실제 서버의 상태를 확인하기 위해 작은 스크립트를 사용하므로 문제가 있는 경우 즉시 유지 관리 페이지가 표시됩니다.

추신.로드 밸런서에는 Load Master 1500을 사용합니다.

다른 팁

사용자 정의 구성 파일을 사용하여 Apache를 시작하는 것은 매우 쉽습니다.내 시스템에서:

httpd -f <config>

나는 이것을 유지 관리 자리 표시자로 매우 간단한 구성인 쉘 스크립트와 함께 정기적으로 사용합니다.스크립트는 단순히 일반 Apache를 중지하고 이를 시작합니다.

2개의 구성 파일을 만들고 서로 교환합니다.

파일의 일부만 변경되는 경우에는 일종의 전처리기와 병합하고 한 소스에서 표준 버전과 "오프라인" 버전을 모두 생성하고 두 버전을 교환합니다.

IIRC 아파치 구성 파일은 어쨌든 CPP를 사용하여 빌드됩니다.

우리도 비슷한 일을 했습니다.기본 사이트 페이지로 리디렉션되는 index.html이 있습니다.유지 관리가 있을 때 html 파일에서 리디렉션을 변경하는 스크립트를 실행합니다.그런 다음 cron 및 viola 자동 유지 관리 창에서 스크립트를 진행합니다.

도움이 되었기를 바랍니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top