유지 관리 페이지를 표시하기 위해 NGINX에서 호스팅되는 개별 웹 사이트 재정의

유지 관리 페이지를 표시하기 위해 NGINX에서 호스팅되는 개별 웹 사이트 재정의

우리는 NGINX에서 여러 사이트를 호스팅하는 아키텍처를 가지고 있습니다. 각 NGINX 사이트에는 고유한 구성이 있습니다. 이러한 각 사이트는 공통 코드베이스를 가리키지만 다른 도메인 이름과 관련 SSL을 가리킵니다.

유지 관리 중에 우리가 원하는 것은 페이지에 대한 요청이 이루어지면 공통 Maintenance.html 페이지를 표시하는 것입니다. 각 웹사이트의 website.conf 파일에 가서 재작성 규칙을 삽입할 수 있지만 이는 완전한 솔루션은 아닙니다. 우리가 피하려고 하는 해킹에 가깝습니다.

우리는 이것을 루트 수준의 nginx.conf 파일에 구현하려고 합니다. 그러면 (443)을 통해 들어오는 모든 요청이 차단되어(자체 구성 파일이 로드되기 전에) 공통 Maintenance.html 페이지로 리디렉션됩니다.

nginx.conf 파일 수준에서 이를 어떻게 달성할 수 있습니까?

감사해요

답변1

모든 호스트를 한 번만 편집할 수 있으며(이러한 호스트가 생성된 템플릿을 편집하는 것을 잊지 마세요) 그 후에는 모두 편집할 필요가 없습니다.

예를 들어 "all_vhosts_override"와 같이 호출할 수 있는 빈 파일을 만듭니다. include "all_vhosts_override";각 가상 호스트 정의의 상단 근처에 모든 항목 location과 항목을 추가합니다 alias.

한 번에 모든 가상 호스트에서 무언가를 재정의해야 하는 경우 해당 파일에 명령문을 추가하고 nginx를 다시 로드합니다. 모든 가상 호스트는 이 단일 파일에서 구성을 수신하므로 개별 구성을 업데이트할 필요가 없습니다. 유지 관리를 완료한 후 비어 있는 재정의 파일을 지우고 다시 로드하면 됩니다.

관련 정보