SPA(Single Page Application)에서 발생하는 404 오류는 종종 클라이언트 측 라우팅 때문에 발생합니다. Nginx는 기본적으로 서버에서 파일을 찾을 수 없는 경우 404 에러를 반환합니다. 그러나 SPA에서는 실제로 서버에 존재하지 않는 경로를 사용하여 클라이언트 측에서 라우팅을 처리하기 때문에 이런 문제가 발생할 수 있습니다.
이를 해결하기 위해 Nginx 설정에서 다음과 같은 조치를 취할 수 있습니다:
1. try_files 지시어 사용하기
try_files 지시어를 사용하여 요청된 파일이 없을 경우 SPA의 기본 HTML 파일로 요청을 리다이렉트할 수 있습니다. 보통은 index.html로 리다이렉트합니다.
server {
listen 80;
server_name yourdomain.com; # 서버 도메인 혹은 IP
root /usr/share/nginx/html; # 프론트엔드 파일이 위치한 디렉토리
index index.html; # 기본 파일 설정
location / {
try_files $uri $uri/ /index.html;
}
# 만약 다른 경로에 API가 있다면, 별도의 location 블록을 설정할 수 있습니다.
# location /api/ {
# proxy_pass http://backend_server;
# }
}
설정 설명:
- try_files $uri $uri/ /index.html;:
- 이 설정은 우선 요청된 URI가 실제 파일 혹은 디렉토리인지 확인합니다.
- 만약 없다면 /index.html로 리다이렉트하여 SPA의 클라이언트 측 라우터가 경로를 처리하도록 합니다.
2. 설정 적용하기
설정을 수정한 후에는 반드시 설정 파일의 문법을 확인하고, Nginx를 재시작하거나 설정을 재로드해야 합니다.
sudo systemctl reload nginx # 설정 재로드
'클라우드 > Oracle' 카테고리의 다른 글
방화벽 설정 에러 (0) | 2024.08.12 |
---|---|
[Oracle] 파일질라 연결 (0) | 2024.08.09 |
[Oracle] ngnix 실행 (0) | 2024.08.08 |