我正在使用一个简单的 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 服务器返回的标头,以便只有我的标头版本出现在最终响应中?