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

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

先看下后端代码跨域配置:

主要的目标是:不修改后端跨域配置代码,来实现Nginx跨域指定域名。

    @Bean
    public CorsFilter corsFilter() {
        final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
        final CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.setAllowCredentials(true);
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**",
            corsConfiguration);
        log.info("跨域已启动");
        return new CorsFilter(urlBasedCorsConfigurationSource);
    }

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

}

Nginx覆盖后端代理服务的header,有两种实现方式

  1. 使用 proxy_hide_header 方式实现。
  2. 使用more_set_headers 'Access-Control-Allow-Origin: 指定域名';

使用 proxy_hide_header 方式实现:

  server {
      listen       7077;
     server_name  localhost;
     add_header Access-Control-Allow-Headers "*";
     add_header Access-Control-Allow-Methods "POST, GET, PUT, PATCH, OPTIONS";
     #隐藏后端服务响应中的 Access-Control-Allow-Origin 标头
     proxy_hide_header 'Access-Control-Allow-Origin';
     # 隐藏后再次添加 Access-Control-Allow-Origin 标头。只允许8091域下访问
     add_header 'Access-Control-Allow-Origin' 'http://192.0.0.1:8091';
     location /xxx/pc {
        proxy_pass http://192.0.0.1:7077;
     }
 }

使用more_set_headers方式实现:

more方式需要安装nginx模块。模块安装可以参考:more安装步骤

  server {
     listen       7077;
     server_name  localhost;
     add_header Access-Control-Allow-Headers "*";
     add_header Access-Control-Allow-Methods "POST, GET, PUT, PATCH, OPTIONS";
   
     #直接设置后端服务响应中的 Access-Control-Allow-Origin 标头内容。
     more_set_headers 'Access-Control-Allow-Origin: http://192.0.0.1:8091' 
     location /xxx/pc {
        proxy_pass http://192.0.0.1:7077;
    }
 }

原文链接:https://www.cnblogs.com/easonchean/p/17346848.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx配置跨域,覆盖后端服务跨域配置 - Python技术站

(0)
上一篇 2023年4月23日
下一篇 2023年4月23日

相关文章

  • 解决javaWEB中前后台中文乱码问题的3种方法

    下面是详细讲解“解决JavaWeb中前后台中文乱码问题的3种方法”的完整攻略,包括三种方法的步骤和示例代码。 一、问题描述 在JavaWeb开发中,我们有时候会遇到前后台交互时出现中文乱码的问题,这给用户带来不好的体验,同时也会影响数据的正确性。下面我们讲解三种解决JavaWeb中前后台中文乱码问题的方法。以下示例中,假设我们需要接收中文参数,并将其返回给前…

    Java 2023年5月20日
    00
  • JavaScript对象数组如何按指定属性和排序方向进行排序

    对JavaScript对象数组进行排序可以使用JavaScript内置的sort()函数,它可以按照指定的属性和排序方向进行排序。 首先,需要使用sort()函数来定义排序规则。sort()函数的参数是一个函数,该函数负责定义排序规则。该函数接收两个参数,分别是要进行比较的两个元素。该函数需要返回一个数值类型的值,根据返回值的不同,sort()函数决定将两个…

    Java 2023年5月19日
    00
  • javaweb页面附件、图片下载及打开(实现方法)

    下面是详细讲解“javaweb页面附件、图片下载及打开(实现方法)”的完整攻略: 1. 附件下载 实现方法 创建一个下载链接或按钮,设置其href属性为要下载的文件资源的url地址,如下所示: <a href="/attachments/file.pdf">下载</a> 在后端处理器中,根据url地址获取文件资源,…

    Java 2023年6月15日
    00
  • jdbc链接远程数据库进行修改url操作

    jdbc是Java Database Connectivity的缩写,即Java数据库连接,是一种用于连接和操作关系型数据库的Java API。在访问数据库时,我们需要对jdbc进行配置,其中就包括jdbc的url地址。当我们需要连接远程数据库并修改其url地址时,需要进行以下步骤: 1. 加载数据库驱动 在使用jdbc连接数据库之前,需要将数据库驱动程序加…

    Java 2023年6月16日
    00
  • 基于mybatis-plus 时间字段比较

    基于mybatis-plus的时间字段比较需要注意以下几点: mybatis-plus提供了Wrapper的抽象,其中LambdaWrapper是使用Lambda表达式构造查询条件的语法糖,更加方便和直观。 mybatis-plus的WrapperQueryFilter接口可以实现WHERE条件的自定义函数。 mybatis-plus的条件构造器在比较时间字…

    Java 2023年6月1日
    00
  • 关于logBack配置日志文件及编码配置的问题

    关于logBack配置日志文件及编码配置的完整攻略如下: 1. 导入Logback依赖 首先需要在项目中导入Logback依赖,可以在pom.xml中进行配置: <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic&…

    Java 2023年5月20日
    00
  • Java中SpringSecurity密码错误5次锁定用户的实现方法

    Java中Spring Security提供了实现对用户密码错误次数的限制的功能,可以有效地防范暴力破解密码的攻击。下面是实现方法的完整攻略: 1. 添加依赖 为使用Spring Security功能,我们首先需要在工程中添加相关依赖。可以通过Maven或Gradle等工具自动下载所需的库文件并将其添加至工程中。添加依赖库后,我们可以开始配置Security…

    Java 2023年5月20日
    00
  • Java Spring 声明式事务详解

    Java Spring 是一个非常流行的开源框架,可以用来构建企业级应用程序。Spring 内置了事务管理器,提供了声明式事务的支持,让我们能够更加方便地管理事务。本篇文章将着重讲解 Java Spring 声明式事务的完整攻略。 什么是声明式事务 声明式事务是基于 Spring AOP 的一种事务管理方式,它通过对业务方法进行拦截和代理,从而实现自动管理事…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部