Nginx配置跨域,覆盖后端服务跨域配置

锦通  金牌会员 | 2023-4-23 16:52:01 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 783|帖子 783|积分 2349

本篇文章主要介绍了,如何通过Nginx配置跨域,并覆盖后端服务跨域配置。
先看下后端代码跨域配置:

主要的目标是:不修改后端跨域配置代码,来实现Nginx跨域指定域名。
  1.     @Bean
  2.     public CorsFilter corsFilter() {
  3.         final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
  4.         final CorsConfiguration corsConfiguration = new CorsConfiguration();
  5.         corsConfiguration.setAllowCredentials(true);
  6.         corsConfiguration.addAllowedOrigin("*");
  7.         corsConfiguration.addAllowedHeader("*");
  8.         corsConfiguration.addAllowedMethod("*");
  9.         urlBasedCorsConfigurationSource.registerCorsConfiguration("/**",
  10.             corsConfiguration);
  11.         log.info("跨域已启动");
  12.         return new CorsFilter(urlBasedCorsConfigurationSource);
  13.     }
  14.     @Bean
  15.     public RestTemplate restTemplate() {
  16.         return new RestTemplate();
  17.     }
  18. }
复制代码
Nginx覆盖后端代理服务的header,有两种实现方式


  • 使用 proxy_hide_header 方式实现。
  • 使用more_set_headers 'Access-Control-Allow-Origin: 指定域名';
使用 proxy_hide_header 方式实现:
  1.   server {
  2.       listen       7077;
  3.      server_name  localhost;
  4.      add_header Access-Control-Allow-Headers "*";
  5.      add_header Access-Control-Allow-Methods "POST, GET, PUT, PATCH, OPTIONS";
  6.      #隐藏后端服务响应中的 Access-Control-Allow-Origin 标头
  7.      proxy_hide_header 'Access-Control-Allow-Origin';
  8.      # 隐藏后再次添加 Access-Control-Allow-Origin 标头。只允许8091域下访问
  9.      add_header 'Access-Control-Allow-Origin' 'http://192.0.0.1:8091';
  10.      location /xxx/pc {
  11.         proxy_pass http://192.0.0.1:7077;
  12.      }
  13. }
复制代码
使用more_set_headers方式实现:

more方式需要安装nginx模块。模块安装可以参考:more安装步骤
  1.   server {
  2.      listen       7077;
  3.      server_name  localhost;
  4.      add_header Access-Control-Allow-Headers "*";
  5.      add_header Access-Control-Allow-Methods "POST, GET, PUT, PATCH, OPTIONS";
  6.    
  7.      #直接设置后端服务响应中的 Access-Control-Allow-Origin 标头内容。
  8.      more_set_headers 'Access-Control-Allow-Origin: http://192.0.0.1:8091'
  9.      location /xxx/pc {
  10.         proxy_pass http://192.0.0.1:7077;
  11.     }
  12. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

锦通

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表