본문 바로가기

SpringBoot (JAVA)

NginX 서버에서 CORS 에러 처리하기: 자세한 가이드

반응형

CORS(Cross-Origin Resource Sharing)는 웹 애플리케이션에서 다른 도메인의 리소스에 접근할 때 발생하는 보안 정책을 나타내는 것입니다. NginX를 사용하여 웹 애플리케이션을 호스팅하는 경우, CORS 에러가 발생할 수 있습니다. 이 블로그 포스트에서는 NginX 서버에서 CORS 에러를 처리하는 방법을 자세히 알아보겠습니다.

1. CORS 에러 이해하기

CORS 에러는 다른 도메인에서 온 리소스에 접근하는 경우, 브라우저에서 보안상의 이유로 발생합니다. 이를 해결하려면 서버 측에서 적절한 설정을 수행해야 합니다.

2. NginX 설정 파일 수정

NginX 설정 파일을 열어 CORS 에러 처리를 위한 설정을 추가합니다. 일반적으로 /etc/nginx/nginx.conf 또는 /etc/nginx/sites-available/your_site.conf와 같은 경로에 설정 파일이 위치할 수 있습니다.

server {
    listen 80;
    server_name your_domain.com;

    location / {
        # 기존 설정

        # CORS 에러를 허용할 도메인 목록을 설정합니다.
        add_header 'Access-Control-Allow-Origin' '*'; # 모든 도메인 허용
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; # 허용하는 HTTP 메서드 설정
        add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept'; # 허용하는 헤더 설정

        if ($request_method = 'OPTIONS') {
            # preflight 요청에 대한 응답 설정
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain charset=UTF-8';
            add_header 'Content-Length' 0;
            return 204;
        }
    }

    # 기타 설정
}

3. 설정 파일 저장 및 NginX 서버 재시작

설정 파일을 저장한 후, NginX 서버를 재시작합니다. 이렇게 하면 CORS 에러 처리 설정이 적용됩니다.

sudo service nginx restart

4. 테스트 및 디버깅

웹 애플리케이션에서 서버에 AJAX 요청을 보내보고, 더 이상 CORS 에러가 발생하지 않는지 확인합니다. 개발자 도구의 Network 탭을 사용하여 요청과 응답 헤더를 확인하면 도움이 됩니다.

5. 추가 보안 고려사항

모든 도메인을 허용하는 것보다, 실제로 필요한 도메인만 허용하도록 설정하는 것이 더 안전합니다. 필요한 도메인만 Access-Control-Allow-Origin 헤더에 추가하도록 조정해야 합니다.

반응형