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日

相关文章

  • Spring Security 过滤器注册脉络梳理

    下面是Spring Security 过滤器注册脉络梳理的完整攻略。 Spring Security 过滤器注册脉络梳理 在Spring Security中,过滤器的注册是非常重要的一项工作,它决定了Spring Security能否对请求进行拦截,并进行相应的安全控制。 过滤器链 Spring Security 采用了一条链式过滤器来完成安全控制,它是由一…

    Java 2023年5月20日
    00
  • 浅谈spring boot 1.5.4 异常控制

    在Spring Boot 1.5.4中,异常控制是非常重要的。它可以帮助我们快速定位问题,提高应用程序的可维护性和可用性。本文将浅谈Spring Boot 1.5.4异常控制,并提供两个示例。 1. 异常处理方式 在Spring Boot 1.5.4中,我们可以通过以下方式处理异常: 使用@ControllerAdvice注解处理全局异常。 @Control…

    Java 2023年5月15日
    00
  • 常见的Java字节码插装工具有哪些?

    常见的Java字节码插装工具有很多,其中比较常用的有ASM、Javassist、Byte Buddy和Instrumentation,下面具体介绍它们的使用方法以及示例。 一、 ASM 1.1 简介 ASM是一个Java字节码操作框架,它可以用来动态生成和转换Java字节码。与Java自带的Instrumentation机制类似,ASM扫描字节码时,会向字节…

    Java 2023年5月11日
    00
  • sourceTree合并一次提交的内容

    sourceTree合并一次提交的内容 在基于git的开发中,经常遇到不同分支需要合并某一次特定的提交的代码,而不是合并整个代码。 场景:A分支是通用分支,B分支是私有化分支,现在A分支修改了一个通用的功能,需要合并到B分支上,功能在一次提交上。B分支只需要这次提交的代码,对A分支上改动的其他代码都不感兴趣。对此,常规的merge已经不能满足我们的需求。 1…

    Java 2023年4月27日
    00
  • JSP 注释的详解及简单实例

    标题:JSP 注释的详解及简单实例 JSP 注释通常用于在 JSP 页面中描述代码的意图和功能。本文将介绍 JSP 注释的语法和用法,并提供两个示例说明。 JSP 注释的语法 JSP 注释有三种语法:HTML 注释、JSP 注释和 JSP 作家注释。这里我们分别介绍。 HTML 注释 HTML 注释是以 “” 结束的注释,如下所示: <!– 这是 H…

    Java 2023年6月15日
    00
  • Spring注解方式无法扫描Service注解的解决

    当使用Spring注解方式配置应用程序时,有时可能会出现在扫描Service注解时无法识别的问题。出现这个问题的原因一般是因为缺少在Spring中定义Service注解扫描器的配置或者配置错误。解决此类问题需要进行以下设置: 添加@Service注解扫描器。 要使Spring扫描@Service注解,需要在Spring配置文件中配置注解扫描器,如下所示: &…

    Java 2023年5月20日
    00
  • Spring Boot中使用JDBC Templet的方法教程

    下面是Spring Boot中使用JDBC Template的方法教程。 简介 JDBC Template是Spring框架提供的一种用于简化JDBC操作的工具,它封装了许多常见的JDBC操作,使得开发人员能够通过简单的代码实现JDBC数据访问。本教程将介绍在Spring Boot项目中如何使用JDBC Template进行数据访问。 步骤 以下是使用JDB…

    Java 2023年5月20日
    00
  • SpringCloud Alibaba框架介绍

    SpringCloud Alibaba框架介绍 什么是SpringCloud Alibaba SpringCloud Alibaba 是一套基于 SpringCloud 体系的微服务工具集,包含了 SpringCloud 的服务治理体系、服务网关、SpringCloud Config 等组件,还包含了阿里巴巴公司自主开发的多项服务治理产品,例如 Nacos …

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