안녕하세요.
웹 서버 정적 처리를 NGINX에 Build파일로 모두 가도록 구성되어있습니다.
동적 처리는 test.hello.com/pay 처럼 경로에 따라 서비스가 달라집니다.
문제는 반영 과정에서 웹 서버 이중화 구조로 반영중인 서버로 인입이 됩니다.
F/W → WAF → L4(VIP) → WEB(Nginx) 구조로 L4에서는 Nginx를 내리기 전까지 인입됩니다.
하지만 내릴 수 없는 이유는 다른 웹 서비스도 운영 중이기 때문입니다.
그래서 반영 시 다른 에러(404, 405 등)들은 Build파일에 있지만 반영하면서 Build를 지우고 다시 넣어야 하는 과정에서
파일을 못찾는 경우 Nginx에서 처리해주도록 하기 위해 에러페이지를 커스텀 페이지로 지정하게 되었다.
정리하면 너무 좋지 않은 아키텍처입니다.
이 글은 어쩔수 없는 사정이 있어 이렇게 구성되어 대처방안을 찾아 사용하고 있지만 정말 비비비추천하는 설계구조입니다.
500 ERROR 페이지 설정
클라이언트의 요청이 들어오면 locathon / 를 확인하고 build를 찾습니다.
만약 파일이 없다면 try_file 지시문이 실행되면서 index.html을 찾습니다.
지정된 경로에도 파일이 없으면 500오류를 반환합니다.
500오류가 반환되면 error_page 500 /50x.html 이 실행되고 클라이언트에게 /50x.html 페이지를 제공합니다.
그러면 /50x.html 의 기본경로에있는 파일 50x.html파일이 실행됩니다.
server{
error_page 500 /50x.html;
location = /50x.html {
root /appstore/webserver/nginx_test/html/;
}
location / {
root /appstore/webserver/nginx_test/WEB/build;
index index.html;
try_files $uri /index.html =500;
}
# ... 생략
}
50x.html 파일 업로드
/appstore/webserver/nginx_tmonet/html/ 경로에는 50x.html 의 파일만 남기고 지우세요.
나머지 오류 코드들은 소스코드에서 처리하도록 개발되어 굳이 사용하지 않았습니다.
$ cd 업로드경로
$ mv 50x.html /appstore/webserver/nginx_tmonet/html/
$ ls -l /appstore/webserver/nginx_tmonet/html/
'Linux' 카테고리의 다른 글
Openssl 지원 버전 확인하기 (0) | 2024.04.11 |
---|---|
springframework [/WEB-INF/spring/root-context.xml] 에러 (0) | 2024.04.03 |
SU 명령어 사용 가능 그룹 제한 하는 방법 (0) | 2024.03.19 |
VPN Tunneling 구간 SSH timeout 증상 (3handshake) (0) | 2024.03.18 |
[Linux] IBM X3550 M4 서버 CentOS 재 설치 (0) | 2024.03.14 |