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

+ Recent posts