add_header 'Access-Control-Allow-Origin配置多个域名
时间: 2023-11-21 11:57:33 浏览: 92
可以使用Nginx的map模块和if语句来实现在响应头中添加多个Access-Control-Allow-Origin头部的配置。具体步骤如下:
1.在Nginx配置文件中定义一个map,将需要允许跨域访问的域名和对应的Access-Control-Allow-Origin头部值进行映射。例如:
```
map $http_origin $allow_origin {
default "";
"http://example.com" "http://example.com";
"http://www.example.com" "http://www.example.com";
"http://sub.example.com" "http://sub.example.com";
}
```
上述配置中,$http_origin是请求头中的Origin字段,$allow_origin是根据$http_origin映射得到的Access-Control-Allow-Origin头部值。如果请求头中的Origin字段没有在map中定义,则$allow_origin的值为默认值""。
2.在Nginx配置文件中使用if语句来判断$allow_origin的值是否为空,如果不为空,则添加Access-Control-Allow-Origin头部。例如:
```
if ($allow_origin != "") {
add_header Access-Control-Allow-Origin $allow_origin;
}
```
上述配置中,如果$allow_origin的值不为空,则添加一个名为Access-Control-Allow-Origin的头部,并将其值设置为$allow_origin的值。
3.重启Nginx服务使配置生效。
需要注意的是,使用if语句可能会影响Nginx的性能,因此建议使用map模块和if语句的组合来实现在响应头中添加多个Access-Control-Allow-Origin头部的配置。
阅读全文