-
[Nginx] 페이지 새로고침 시 404 Page Not Found가 뜬다면?!프로젝트 노트 2024. 5. 20. 14:37
nginx환경에서 새로고침 시 Resource 서빙이 안되는 이슈가 발생했습니다.
계속해서 404, Page Not Found 오류가 발생을 하더군요..
어쩜 모든 화면에서 이러지? 라고 생각을 하면서 설정이 미흡했다고 예상을 했는데, 역시 설정이 하나 누락되어 있었습니다.
nginx 설정에서 conf.d 폴더 내 default.conf 파일을 확인해보니 try_files 옵션이 누락되어 있었습니다.
여기서 try_files 옵션은 rewrite 기능과 비슷한데, 요청된 URL을 처리할 때 여러 파일이나 위치를 순차적으로 확인하여 존재하는 파일이나 디렉토리로 요청을 매핑하는 데 사용됩니다.
만약 모든 파일이나 위치가 존재하지 않는 경우, 마지막 매개변수로 지정된 동작을 수행합니다.
설정 방식은 다음과 같습니다.
location / { try_files $uri $uri/ /index.html = 404; // 위와 같이 설정해줄 경우 새로고침 시 index.html을 통해 // 요청한 URI로 이동하도록 설정해주는 옵션입니다. root /usr/share/nginx/html/dist; index index.html index.htm; }
이걸 조금 더 자세히 풀어보면
try_files 옵션 이후에 오는 $uri는 클라이언트가 요청한 URI와 일치하는 파일이 있는지 찾아보는 설정입니다.
둘째로 $uri/는 해당 요청이 디렉토리인지 확인하는 설정입니다.
마지막 /index.html은 위 두 단계를 거쳐 파일이나 디렉토리를 찾지 못한 경우 /index.html을 반환하라는 설정이며, 404 옵션은 모든 경우를 실패했을 때 404(Not Found) 응답을 반환하라는 내용입니다.
'프로젝트 노트' 카테고리의 다른 글
[Spring boot + Docker + Swagger3] Ubuntu 환경의 Docker 컨테이너로 Spring boot 배포하기(with Swagger3 And jar) (0) 2024.08.08 [Spring Boot + Gradle] 외장 톰캣에 War로 배포하기 (0) 2024.08.06 Ubuntu Docker-Compose 설치 (0) 2024.05.14 초간단 Docker에서 Tomcat 설치하기 (0) 2024.05.13 Ubuntu 20.04 LTS에 Docker 설치하기 (0) 2024.05.13