NGINX add_header, 여러 헤더 추가 보내려고합니다. add_header Access-Control-Allow-Origin http://dev.anuary.com; add_header Access-Control-Allow-Origin https://dev.anuary.com; 그러나 대신

여러 헤더를 보내려고합니다.

add_header Access-Control-Allow-Origin http://dev.anuary.com;
add_header Access-Control-Allow-Origin https://dev.anuary.com;

그러나 대신 NGINX는

Access-Control-Allow-Origin: http://dev.anuary.com, https://dev.anuary.com

해결책은 무엇입니까?



답변

예, nginx는 동일한 이름의 헤더를 결합하고 있습니다. 그러나 HTTP 사양에 따라 그렇게합니다. 4.2 절을 참조하십시오 .

헤더 :

Access-Control-Allow-Origin: http://dev.anuary.com, https://dev.anuary.com

HTTP / 1.1 사양에 따르면 기능적으로 다음과 같습니다.

Access-Control-Allow-Origin: http://dev.anuary.com
Access-Control-Allow-Origin: https://dev.anuary.com

한 형식을 읽을 수 있고 다른 형식을 읽을 수없는 시스템이나 응용 프로그램이있는 경우 문제가됩니다. nginx가 올바르게하고 있습니다.


편집 :

모질라 문서는 하나가 될 수 있다고 Access-Control-Allow-Origin헤더.

그것의 형식화 ( 여기 참조 )는 공백으로 구분 된 원점 목록이어야합니다.

add_header Access-Control-Allow-Origin "http://dev.anuary.com https://dev.anuary.com";

그러나 실제로 는 파란색 에서 헤더를 생성하는 대신 클라이언트가 제공 한 헤더를 에코 해야합니다Origin . 아마도 더 적합 할 것입니다 :

if ($http_origin ~* "^https?://dev\.anuary\.com$" ) {
    add_header Access-Control-Allow-Origin $http_origin;
}


답변

동적 도메인으로 nginx CORS를 구성하려면이 게시물을 확인하십시오.
https://qa.lsproc.com/post/access-control-allow-origin-multiple-origin-domains


답변

네트워크의 여러 하위 도메인과 동일한 문제에 직면하여 리소스에 액세스하려고 nginx했으나 제대로 설정되지 않았습니다. 여기에 내가 고 쳤던 방법이 있습니다.

add_header Access-Control-Allow-Origin https://*.your-domain-name.com;

이게 도움이 되길 바란다.


답변