nginx反向代理先后端分离项目(后端多台)

目前软件架构都比较流行先后端分离,先后端的分离也实现了先后端架构的分离,带来的好处 —— 整个项目的开发权重往前移,实现真正的先后端解耦,动态资源和静态资源分离,提升了性能和扩展性。javascript

一般SpringBoot与vue 进行先后端分离,主要有两种方式:css

1.打包(npm run build命令)vue项目出来的dist文件夹拷贝到springboot项目的static文件目录,部署到tomcat便可。html

2.利用nginx的反向代理。前端

本文主要讲解第二种vue

首先打包前端项目到指定目录:E:\fjgh\distjava

而后部署后端项目到不一样的Tomcat服务器,请求地址分别是:mysql

  http://localhost:8086/un/nginx

  http://localhost:8087/un/web

重点是nginx配置redis

1.在配置文件http模块添加后端服务负载均衡策略配置,经常使用有三种策略,本例使用默认轮询

#负载均衡配置:轮询(默认) 指定权重 IP绑定;
	upstream fjghmultiple{
		server localhost:8086;
		server localhost:8087;
	}

2.添加server配置

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
			#root  html;
            root   E:\fjgh\dist ;#vue项目的打包后的dist
            index  index.html index.htm;
			#开启gzip压缩,下降传输流量,减小响应时间
			gzip  on;
			gzip_min_length    1k;
			gzip_buffers    4 16k;
			gzip_http_version  1.1;
			gzip_comp_level  2;
			gzip_types  text/plain application/x-javascript text/css  application/xml  application/json ;
			gzip_vary on;
        }
        location /un/ {
			#代理后端服务
            proxy_pass http://fjghmultiple/un/;
        }

    }

3.经过start nginx 命令启动nignx 访问地址 http://localhost 便可

补充:多个后台须要考虑用户登陆状态同步的问题,咱们使用的是经过spring-session实现session共享:当web服务器接收到http请求后,请求进入到对应的Filter进行过滤,原表须要由web服务器建立会话的过程转交给spring-session进行建立,原本建立的会话保持在web服务器内存中,经过spring-session建立的会话信息能够保存在第三方的服务中,好比:redis,mysql等。各个web服务器之间经过链接第三方服务来共享数据,实现session共享。

相关文章
相关标签/搜索