小编Mic*_*lor的帖子

如何使用 nginx 替换代理响应中的 Access-Control-Allow-Origin 标头

我正在使用一个简单的 nginx 实例将 REST 调用代理到另一台服务器。我的代理的目的是允许使用 cookie 进行身份验证。我有它的工作,除了一个问题。提供 REST 服务的服务器正在发送标头Access-Control-Allow-Origin *。该标头对于基于 cookie 的身份验证过于宽松。我需要用更具限制性的标题替换该标题。

这是我的 nginx 配置的一个子集:

map $http_origin $cors_header {
    default "";
    "~^https?://[^/]+\.mydomain\.com(:[0-9]+)?$" $http_origin;
}

server {    
    location / {
        proxy_pass https://myrestserver.com/api;
        add_header Access-Control-Allow-Origin $cors_header;
        add_header Access-Control-Allow-Credentials true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是Access-Control-Allow-Origin我的响应中出现了两个标题。如何替换从 REST 服务器返回的标头,以便只有我的标头版本出现在最终响应中?

nginx cors

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

cors ×1

nginx ×1