nginx中对多个网站进行跨域配置

nginx中对于跨域的配置,要启用默认就是:

1
add_header Access-Control-Allow-Origin *;

这样对所有网站都允许跨域请求,如果针对某个网站允许跨域,可以这样:

1
add_header Access-Control-Allow-Origin https://www.psay.cn;

但是我要针对多个网站允许跨域呢,配置中是不允许同时添加多个网址的,要么为全部允许,要么仅针对某个网址,是不允许Access-Control-Allow-Origin后面添加多个网址。

变通一下,可以这样做多个判断,在server{}添加如下代码,就可以允许多个网站对于本网站进行跨域请求了。

1
2
3
4
5
6
7
8
set $cors_origin "";
if ($http_origin ~* "^http://test.blyoo.com$") {
set $cors_origin $http_origin;
}
if ($http_origin ~* "^https://www.blyoo.com$") {
set $cors_origin $http_origin;
}
add_header Access-Control-Allow-Origin $cors_origin;