spring boot 项目代理配置

原创 2017年07月17日 17:23:13

最近公司需要做一个项目,项目是前后端分离的,前端技术用的vue+element,后端用的是spring boot+shiro,为了开发的方便,项目分为了多个,后端主要提供接口,前段只放页面,在发布的过程中,由于需要跨域访问数据、获取数据,所以会出现跨域的问题。

在开发的时候,我们前端开发的时候是有设置vue 代理的(vue代理设置请看我另外的一篇博客),为了后期的方便,我们考虑到前端项目也设置代理,并且代理名字配置一样,这样的话,只要把编译后的vue文件,直接放到项目中,就可以访问,减少了很多的工作量,具体配置如下:

       

1.    在前端项目pom.xml中增加以下依赖:

<dependencies>中增加:

<dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-zuul</artifactId>

     </dependency>

<dependencyManagement><dependencies>中增加:

              <dependency>

               <groupId>org.springframework.cloud</groupId>

               <artifactId>spring-cloud-netflix</artifactId>

               <version>1.2.3.RELEASE</version>

               <type>pom</type>

               <scope>import</scope>

        </dependency>

2.    在项目配置文件中,增加代理配置:

#反响代理配置 

#这里的配置类似nginx的反响代理 

#当请求/api/**会直接交给listOfServers配置的服务器处理 

#当stripPrefix=true的时候 (http://127.0.0.1:8181/api/user/list-> http://192.168.1.100:8080/user/list) 

#当stripPrefix=false的时候(http://127.0.0.1:8181/api/user/list-> http://192.168.1.100:8080/api/user/list) 

 

zuul.routes.api.path=/api/**

zuul.routes.api.url=http://localhost:9901

#如果不加这行代码,每次请求都会生成一个新的session

zuul.routes.api.sensitiveHeaders= Authorization

ribbon.eureka.enabled=false

3.    增加过滤器

@Component

publicclass AssZuulFilter extends ZuulFilter{

 

private static Logger log =LoggerFactory.getLogger(AssZuulFilter.class);

@Override

public Object run() {

        // TODO Auto-generated method stub

        System.out.println("run");

        RequestContext ctx = RequestContext.getCurrentContext();

   HttpServletRequest request = ctx.getRequest();

 

   log.info(String.format("%s request to %s",request.getMethod(), request.getRequestURL().toString()));

 

        return null;

}

 

@Override

public boolean shouldFilter() {

        // TODO Auto-generated method stub

        System.out.println("shouldFilter");

        return true;

}

 

@Override

public int filterOrder() {

        // TODO Auto-generated method stub

        System.out.println("filterOrder");

        return 1;

}

 

@Override

public String filterType() {

        // TODO Auto-generated method stub

        System.out.println("filterType");

        return "pre";

}

 

}

4.    在启动文件Application中配置过滤器启动

@Bean

 publicAssZuulFilter assZuulFilter() {

     return new AssZuulFilter();

        }



请注意在配置代理的时候一定要增加   zuul.routes.api.sensitiveHeaders = Authorization  这一行代码,否则的话,每次请求都会生成一个新的session ,这个问题,一直以为是shiro 的问题,纠结了我好久。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013339787/article/details/75257946

【Nginx】Nginx + Tomcat + SpringBoot 部署项目

项目打包mvn clean instal上传到服务器上通过FTP或者其他方式上传到服务器的目录内CP到项目部署的文件夹内确保Tomcat是运行的状态复制过去后Tomcat会自动部署项目Nginx代理T...
  • diandianxiyu
  • diandianxiyu
  • 2017-05-11 10:07:43
  • 4283

nginx 配合 spring boot - docker 做动静分离和跨域

spring boot 、 spring cloud 、 docker 我就呵呵了,反正很火spring boot 主要做微服务,一般仅仅提供服务,逼格说的简单点,提供一个http请求,返回json。...
  • chenjianandiyi
  • chenjianandiyi
  • 2017-04-21 17:12:00
  • 5111

使用nginx启用https及运行springboot jar包

首先,需要在阿里云申请免费一年的ssl服务打开管理控制台-证书服务,下载证书for nginx在服务器Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中(一个key文件和...
  • lulitianyu
  • lulitianyu
  • 2018-03-14 23:34:14
  • 78

SpringBoot学习-Nginx配置及Session共享

首先是Nginx配置: 下载Nginx(这里使用的是windows版本):http://nginx.org/en/download.html 解压到指定目录,在此目录下打开命令行运...
  • ZNG_XP
  • ZNG_XP
  • 2018-03-01 14:34:24
  • 181

win10下nginx部署spring boot项目的配置与启动

没得说,先下载nginx window版本,我是解压到 C:/tools目录下;进入nginx 找到nginx.conf文件并且打开,我的配置如下:因为是window系统,80端口被占用,你可以把进程...
  • nvfuy
  • nvfuy
  • 2018-03-22 16:18:22
  • 103

跨域访问支持(Spring Boot、Nginx、浏览器)

什么是跨域?跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。本文转自:公众号  (A周立SpringCloud )一、Spring Boot跨域配置我们...
  • b644ROfP20z37485O35M
  • b644ROfP20z37485O35M
  • 2017-12-26 00:00:00
  • 1599

使用Nginx反向代理tomcat服务器

本文主要介绍nginx配置,包含gzip、反向代理tomcat服务、静态资源缓存、动态资源和静态资源分离。...
  • u012476983
  • u012476983
  • 2017-01-05 17:19:14
  • 4085

服务器 配置SSL for nginx && springboot(jetty)

自己的小项目到了配置ssl的阶段,去网上找到了Let’s Encrypt ssl证书提供商 免费开放 用的人比较多 按照官方文档的说明 去这个网站按照提示操作 我是在centos7操作的 ...
  • lovejj1994
  • lovejj1994
  • 2016-11-24 14:47:58
  • 1350

Spring Boot WebSocket整合及nginx配置

一:Spring Boot WebSocket整合 创建一个maven项目,加入如下依赖 org.springframework.boot spring-boot-depen...
  • mn960mn
  • mn960mn
  • 2016-08-11 17:49:02
  • 5718
收藏助手
不良信息举报
您举报文章:spring boot 项目代理配置
举报原因:
原因补充:

(最多只允许输入30个字)