XCJ's Blog

XCJ

Nginx使用map配置CORS实现多域名跨域

25
2024-09-27

CORS(Cross-Origin Resource Sharing),中文全称“跨域资源共享”,是一项网络安全功能,用于允许或限制一个网页中可以访问的资源来自不同的源(域、协议和端口组合)。在网站的 nginx 配置中添加以下代码可以实现跨域资源共享:

map $http_origin $allow_origin {
    default "";
    "~^(https?://([a-zA-Z0-9-]+\\.)?example.com)$" $1;
}

server {
  add_header Access-Control-Allow-Origin $allow_origin;
  # 其他配置...
}

以上代码中,我们使用了 nginx 的 map 指令,根据请求的 Origin 头部来设置 Access-Control-Allow-Origin 头部。这样做可以允许特定的域名或者二级域名进行跨域资源共享。只需将 example.com 替换为你自己的域名,即可实现该域名和二级域名的跨域资源共享。这样,你的网站就可以安全地与其他域的资源进行交互,而不会受到浏览器的同源策略的限制。