我有一个带有auth_request
模块的nginx框,该框已安装,该框通过我们的身份验证服务授权每个请求,如果授权请求,将请求转发到我们的后端服务,并添加CORS,并添加CORS标题。
我遇到的问题是,当我们的授权服务返回非200个状态代码时,例如401对于未经授权的用户,NGINX在没有任何CORS标题的情况下将401返回了客户,无论它们是由NGINX设置还是由我们的授权服务设置。
我的问题是,当返回401时,如何将CORS标头添加到Nginx的响应中?nginx似乎忽略了 add_header
命令。
我设法找到了答案,以防其他人遇到相同的问题。
使用add_header
使用always
关键字。
例如,
add_header Access-Control-Expose-Headers "X-My-Header" always;
没有always
关键字,Auth_request模块似乎在授权服务的4xx响应的情况下从响应中剥离了非标准标头。
有关更多信息,请参见http://nginx.org/en/docs/http/ngx_http_headers_module.html