NGINX add_header,添加多个头文件

我正在尝试发送多个标题

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 

有什么解决scheme?

那么,是的,Nginx正在组合相同名称的标题..但它是这样做符合HTTP规范。 参见4.2节 。

标题:

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

根据HTTP / 1.1规范,在function上等同于:

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

如果您的系统或应用程序能够读取一种格式而不是另一种格式,那就是问题所在。 nginx是做对了。


编辑

Mozilla文档指出,只能有一个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; } 

我面临着同样的问题,因为我的networking中的多个子域试图访问资源, nginx没有正确设置。 这是我如何修复它。

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

我希望这有帮助。