问答

Nginx location 中如何基于upstream应用中的请求头是否存在来做

作者:admin 2021-05-11 我要评论

背景 后端代码中对部分接口做了处理 支持跨域请求 @CrossOrigin(allowCredentials = "true") 但是后面又有新的接口 需要支持跨域 故为了方便起见 直接在Nginx层...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

背景

后端代码中对部分接口做了处理 支持跨域请求

@CrossOrigin(allowCredentials = "true")

但是后面又有新的接口 需要支持跨域 故为了方便起见 直接在Nginx层统一支持

add_header Access-Control-Allow-Origin $http_origin;

这样配置后 虽然新接口OK了 但是之前代码中已经显式支持跨域的接口就用不了了

The 'Access-Control-Allow-Origin' header contains multiple values 'https://foo.com, https://foo.com', but only one is allowed.

问:
Nginx location 中怎么动态添加Access-Control-Allow-Origin呢

location /api {
    proxy_pass xxx;
    if (Access-Control-Allow-Origin not exists ) {
        add_header Access-Control-Allow-Origin $http_origin;
    }
}

注:
Nginx 版本

nginx version: nginx/1.4.7
###

if ($http_Access_Control_Allow_Orign = '')

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • Nginx location 中如何基于upstream应

    Nginx location 中如何基于upstream应

  • ngxin 加上nginx-rtmp-module 这个的作

    ngxin 加上nginx-rtmp-module 这个的作

  • Clion for Mac,提示找不到头文件

    Clion for Mac,提示找不到头文件

  • rabbitmq突然无法启动,erlang发生故障

    rabbitmq突然无法启动,erlang发生故障

腾讯云代理商
海外云服务器