DevOps/nginx
nginx를 사용해서 점검페이지를 띄워보자
bandal-gom
2019. 9. 29. 22:23
nginx 에서 간단하게 503 에러코드를 사용하여 점검페이지를 띄워보자!
서비스 점검 공지
서비스 점검 공지 페이지가 사용되는 경우가 종종 있습니다.
- 장애
- 무중단이 불가능한 빅 업데이트
주로 위와 같은 사유로 점검페이지를 사용합니다.
Nginx 를 L4 뒤, application 앞에 두는 구조이기 때문에 점검 페이지를 nginx 쪽에서 관리하고 있습니다.
실제 점검 페이지는 html 파일로, 마크업/디자인 팀에서 전달받은 파일을 nginx 서버에 업로드 하여 사용합니다.
nginx 설정
nginx에서 점검 페이지를 관리하려면 conf 파일에 수정을 해야합니다.
http status code 503 을 사용하여 에러 페이지로 redirect 하도록 다음과 같이 설정.
server {
...
location / {
error_page 503 /maintenance_on.html;
if (-f [서비스경로]/maintenance_on.html) {
return 503;
}
...
}
# Error pages.
location = /maintenance_on.html {
root [서비스경로];
}
...
}
- 점검 페이지가 사용되지 않을때는 maintenance_off.html 로 파일명을 유지.
- 점검페이지를 띄우는 스크립트 (maintenance.py) 가 maintenance_on.html 로 점검페이지 파일명 변경.
- maintenance_on.html 파일이 존재하는 경우 503 error code 를 반환.
- 503 error code를 maintenance_on.html 로 매핑.
- 요청이 /maintenance_on.html 로 들어오는 경우, 지정된 경로의 파일로 요청 redirect.
점검페이지 ON/OFF 스크립트
해당 설정을 빠르게 하기위해서 간단한 스크립트를 사용하였습니다.
사용 방법은 다음과 같습니다.
python3 maintenance.py [서비스명] [on or off]
반응형