NGINX add_header, 여러 헤더 추가


21

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

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

해결책은 무엇입니까?

답변:


28

예, 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;
}

글쎄, 후자는 FireFox 9 또는 다른 버전에서는 작동하지 않습니다. 어떤 문제입니다.
Gajus

1
@Guy도 안됩니다. 편집을 참조하십시오.
Shane Madden

참고 : 주어진 해결책이 효과가 없다면 이것이것을 읽으십시오 . 깨달았으며 작동하지 않는 이유를 찾을 수 있습니다.
its_me

Access-Control-Allow-Origin의 가치를 정규식으로 사용할 수 있습니까?
haxpanel

예를 여러 출처 (예 : http://example.comhttp://localhost:3000)로 확장 하시겠습니까 ?
Augustin Riedinger 12


-1

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

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

이게 도움이 되길 바란다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.