Server

[Nginx] 서버 점검 Json 내려주기

youn12 2022. 8. 3. 14:37
✏️ 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
 

웹 서비스 Maintenance Mode (점검 모드) 지원기

웹 서비스 Maintenance Mode (점검 모드) 지원기 온라인 서비스계의 유명한 4대 명검으로 유명한 점검 모드에 대해서 이야기하려 합니다. 점검 모드 지원 결정 운 좋게도 회사에서 운영하는 서비스가

blog.sonim1.com

 

'Server' 카테고리의 다른 글

[Tomcat][Window] 포트 충돌, 사용 중일 경우 포트 죽이기  (0) 2020.10.30