웹 서버에서 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 요청을 허용하고 보안을 유지할 수 있습니다. 다른 도메인에서의 요청을 허용할 도메인을 '*' 대신 명시적으로 지정하려면 해당 도메인을 사용하도록 설정을 수정하십시오.
"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 서버 도메인으로 대체하세요.
'리눅스' 카테고리의 다른 글
[draft] MySQL 서버의 타임존을 확인하고 변경하는 방법 (0) | 2023.09.06 |
---|---|
MySQL에서 caching_sha2_password 인증 플러그인을 비활성화하고 mysql_native_password를 대신 사용하는 방법 (0) | 2023.09.05 |
Docker 이미지를 파일로 저장하고 불러오는 방법 (0) | 2023.09.04 |
adduser 명령어 (0) | 2023.09.04 |
CentOS Yum Repository 서버를 구축하는 방법 (0) | 2023.09.04 |