본문 바로가기

리눅스

웹 서버에서 CORS 설정하는 방법

728x90

웹 서버에서 CORS 설정하는 방법

웹 서버에서 CORS (Cross-Origin Resource Sharing) 설정은 다른 도메인에서의 HTTP 요청을 허용하도록 구성하는 중요한 단계입니다. 이 설정은 웹 애플리케이션에서 다른 도메인의 자원에 접근할 때 발생하는 보안 문제를 해결하기 위해 필요합니다.

Apache에서 CORS 설정하기

1 Apache 웹 서버에서 CORS 설정을 하려면 httpd.conf 또는 .htaccess 파일을 수정해야 합니다. .htaccess 파일을 사용하려면 웹 서버 설정에서 AllowOverride가 All 또는 FileInfo로 설정되어 있어야 합니다.

 

2 .htaccess 파일을 열고 다음과 같이 CORS 헤더를 추가합니다. 모든 도메인에서의 액세스를 허용하려면 '*'를 사용할 수 있습니다.

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
    Header set Access-Control-Allow-Headers "Content-Type, Authorization"
</IfModule>

위 설정은 모든 HTTP 메서드 (GET, POST, PUT, DELETE, OPTIONS) 및 지정된 헤더를 허용합니다. 필요한 경우 허용할 메서드와 헤더를 조정할 수 있습니다.

 

3 설정을 저장하고 웹 서버를 재시작합니다.

sudo service apache2 restart

Nginx에서 CORS 설정하기

1 Nginx에서 CORS 설정을 하려면 해당 서버 블록 (예: server {}) 내에서 설정을 추가합니다.

 

2 다음은 Nginx 서버 블록 내에서 CORS 헤더를 추가하는 예제입니다.

location / {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
}

이 설정은 모든 도메인에서의 액세스를 허용하고 지정된 메서드와 헤더를 허용합니다.

 

3 설정을 저장하고 Nginx를 재시작합니다.

sudo service nginx restart

 

위의 방법을 사용하여 Apache 또는 Nginx 웹 서버에서 CORS 정책을 구성하면 다른 도메인에서의 HTTP 요청을 허용하고 보안을 유지할 수 있습니다. 다른 도메인에서의 요청을 허용할 도메인을 '*' 대신 명시적으로 지정하려면 해당 도메인을 사용하도록 설정을 수정하십시오.

 

728x90

 

"No 'Access-Control-Allow-Origin' header is present on the requested resource" 오류는 클라이언트가 A 서버에서 B 서버로의 요청을 보낼 때 CORS(Cross-Origin Resource Sharing) 정책 위반으로 인해 발생하는 문제입니다. 이 문제를 해결하기 위해서는 B 서버 또는 B 서버를 호스팅하는 웹 서버에서 CORS 정책을 구성해야 합니다.

B 서버의 CORS 헤더 설정

B 서버 또는 B 서버를 호스팅하는 웹 서버에서 CORS 헤더를 설정하여 A 서버에서의 요청을 허용하도록 구성합니다.

  • Apache (htaccess 파일을 사용하는 경우)
Header set Access-Control-Allow-Origin "https://a-server-domain.com"
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"
  • Nginx
location / {
    add_header 'Access-Control-Allow-Origin' 'https://a-server-domain.com';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
}

위 예제에서 'https://a-server-domain.com' 부분을 A 서버 도메인으로 대체하세요.

 

728x90