✏️ Info.
- DB Update 가 계획되어있어서 서버 다운 됐을 때 점검 중 페이지를 띄워줘야 했다.
- Front, Android, AOS 각 Client가 있기에 Html이 아닌 Json 형식으로 필요 변수들을 내려주었다.
📋 List.
1. 점검.json File 생성
2. Nginx Config File 생성
3. Nginc 설정
✔️ Content.
1. 점검.json File 생성
- 생성에 있어 경로를 기억해 둔다.
경로 : /home/maintenacne/maintenance.json
{
"name": "점검중",
"start-time": "2022.08.03 11:00:00",
"end-time": "2022.08.03 16:00:00"
}
2. Nginx Config File 생성
- nginx conf 경로 : /etc/nginx
- 점검 관련 Nginx Config FIle 생성
# 1. 점검 시 내보내줄 json 파일 있는지 확인 (해당 조건으로 점검 on/off)
if (-f /home/maintenacne/maintenance.json) {
# 점검 파일 존재시 503 Code 반환
return 503;
}
# 2. 점검 중으로 반환된 Code가 503 일 경우 json 파일 경로 전달
error_page 503 /home/maintenacne/maintenance.json;
# 3. 점검 중으로 전달 받은 경로일 경우 Retry-After 와 Json 전달
location /home/maintenacne/maintenance.json {
add_header Retry-After 3600 always;
default_type application/json;
alias /home/maintenacne/maintenance.json;
}
1. 점검 중일 경우 내려줄 Json 파일 존재 여부로 점검 중인지 아닌지 판별
2. 점검 중일 경우 503 Code 와 점검 파일 경로 전달
3. 점검 파일 경로 접근 시 Retry-After Header와 json Type으로 Json 파일을 내려준다.
3. Nginx 설정
- 실제 사용중인 Nginx Config에 2. 에서 만든 점검 Config include
location / {
# 1. 앞서 생성한 점검 중 config 파일 include
include /etc/nginx/maintenacne.conf;
...
}
❗️ Refer.
- https://runebook.dev/ko/docs/http/headers/retry-after
- https://stackoverflow.com/questions/15451191/how-to-serve-html-files-in-nginx-without-showing-the-extension-in-this-alias-set
- https://blog.sonim1.com/240
'Server' 카테고리의 다른 글
[Tomcat][Window] 포트 충돌, 사용 중일 경우 포트 죽이기 (0) | 2020.10.30 |
---|