관련지식
nginx, COR, cross-origin
nginx
를 사용하는 다른 도메인으로 AJAX
통신을 호출했을때 서버 로직은 정상적으로 실행되지만 response를 정상적으로 못받는 경우가 있습니다.
크로스 도메인 정책에 의해 차단된 것으로 nginx
에서 COR
을 허용하면 해결됩니다.
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
위의 방식은 https://enable-cors.org/server_nginx.html 에서 가이드 하는 방법이지만 모두 사용할 필요는 없고 Access-Control-Allow-Origin
만 추가하면 COR
은 활성화 됩니다.
나머지 값은 세세한 설정을 위한 것이므로 필요할때만 추가하셔도 됩니다.
만약 URL ‘/extern/callback’ 에 대해서만 크로스 도메인을 적용하고 싶을 경우 nginx
에 아래와 같이 설정 할 수 있습니다.
location / {
if ($uri = '/extern/callback') {
add_header 'Access-Control-Allow-Origin' '*';
}
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
...
}
'nginx' 카테고리의 다른 글
[nginx] location 테스트 페이지 (0) | 2019.10.07 |
---|---|
[nginx] 특정 referer 에서만 url 호출 가능하도록 설정하기 (0) | 2019.10.02 |
[nginx] websocket 사용 설정 (0) | 2019.09.24 |
[nginx] 중첩 if 사용방법 (0) | 2019.05.16 |
[nginx] 413 Request Entity Too Large (0) | 2019.04.06 |