📌  相关文章
📜  add_header access-control-allow-origin * nginx (1)

📅  最后修改于: 2023-12-03 14:39:01.658000             🧑  作者: Mango

设置 Nginx Access-Control-Allow-Origin 头

Access-Control-Allow-Origin 是一种 HTTP 响应头,允许一个网页访问跨域资源。它指定了哪些域名可以访问当前网页的资源。如果你想在你的 Nginx 服务器上允许跨域访问,你可以使用以下方式来设置 Access-Control-Allow-Origin 头。

1. 添加 HTTP 头

你可以向 Nginx 配置文件中添加 HTTP 头。这是通过 add_header 指令完成的。以下是一个简单的配置示例:

add_header Access-Control-Allow-Origin *;

其中,* 表示允许所有域名访问。你也可以使用一个或多个特定的域名,用逗号分隔。

add_header Access-Control-Allow-Origin example.com;
add_header Access-Control-Allow-Origin example1.com, example2.com;
2. 配置 CORS 模块

使用 Nginx 内置的 CORS 模块也可以轻松地配置 Access-Control-Allow-Origin。在启用 CORS 模块后,你可以使用以下配置示例:

location / {
  if ($request_method = "OPTIONS") {
    add_header "Access-Control-Allow-Origin" "*";
    add_header "Access-Control-Allow-Methods" "POST, GET, OPTIONS";
    add_header "Access-Control-Allow-Headers" "Content-Type, Authorization";
    add_header "Access-Control-Allow-Credentials" "true";
    add_header "Access-Control-Max-Age" 86400;
    return 200;
    }
}
3. 配置服务端代理

如果你的 Nginx 服务器用作后端服务代理,你可以在代理服务器上配置 Access-Control-Allow-Origin 头。同样可以使用 add_header 指令来添加 Access-Control-Allow-Origin 头。

location /api/ {
  proxy_pass http://backend.example.com;
  add_header "Access-Control-Allow-Origin" "*";
}

以上是三种设置 Nginx Access-Control-Allow-Origin 头的方式。无论你使用哪种方法,都必须确保你所允许的来源是安全的,并且不会导致你的 Web 应用程序受到攻击。