반응형
멀티 사이트에서 동일한 스크립트를 호출하기 위해서
access-control-allow 헤더를 추가했다.
https://developer.mozilla.org/ko/docs/Web/HTTP/CORS
하지만 모든 도메인에 대해서 allow하는것이 아니라 특정 도메인에서 접근했을때만 호출하기 위해서
조건을 설정함
server {
server_name aaaa.com;
listen 80;
...
...
set $allow_origin '';
set $allow_method '';
# *.abcde.com or *.hoi.com 에서 요청했을경우
if ($http_origin ~ "(.*).(abcde|hoi|).com") {
set $allow_origin $http_origin;
set $allow_method "GET, POST, PATCH, PUT, DELETE, OPTIONS";
}
set $project_path "c:/source/project/";
location ~ ^/js/(.+) {
root $project_path;
try_files /resources/js/$1 =404;
add_header 'Access-Control-Allow-Origin' "$allow_origin" always;
add_header 'Access-Control-Allow-Methods' $allow_method;
}
...
...
}
*.abcde.com이나 *.hoi.com 에서 aaaa.com의 resource를 요청하게 되면 위에서 설정한 값으로 설정된다.
- ex) $allow_origin : 요청한 서버가 https://www.abcde.com 이면 https://www.abcde.com 으로 설정된다.
www.abcde.com 에서 /js/test.js 를 호출하게 되면
location 블록을 통해서 c:/source/project/resources/js/test.js 파일 존재 여부를 확인하고
없을 경우에는 404로 응답하고 존재할 경우에는 header값에 아래 두개의 헤더가 추가된다.
- 'Access-Control-Allow-Origin'
- 'Access-Control-Allow-Methods'
location 블럭 내에서 if문으로 header를 추가하려고 했으나 생각과 다르게 동작하므로
값을 변경하여 설정하는 방법으로 처리함
반응형
'기타' 카테고리의 다른 글
shell mysql 쿼리 실행 및 csv파일 저장 (0) | 2023.09.06 |
---|---|
우리마네에서 어머니 고희연을 끝내고 (0) | 2023.01.30 |
mysql 로그 테이블 날짜를 기준으로 파티셔닝 (0) | 2020.12.24 |
same-site와 same-origin 구분 (0) | 2020.11.12 |
mysql rank 함수 처럼 사용하기 (0) | 2019.02.28 |