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


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

    通常SpringBoot与vue 进行前后端分离,主要有两种方式:

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

    2.利用nginx的反向代理。

    本文主要讲解第二种

    首先打包前端项目到指定目录:E:fjghdist

    然后部署后端项目到不同的Tomcat服务器,请求地址分别是:

      http://localhost:8086/un/

      http://localhost:8087/un/

    重点是nginx配置

    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:fjghdist ;#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共享。

  • 相关阅读:
    [LeetCode]4Sum
    [LeetCode]3Sum
    [LeetCode]Two Sum
    [LeetCode]Maximal Rectangle
    [LeetCode]Largest Rectangle in Histogram
    [LeetCode]Sudoku Solver
    [LeetCode]Group Anagrams
    jQuery验证控件jquery.validate.js使用说明+中文API
    js操作cookie,实现登录密码保存
    Java中getResourceAsStream的用法
  • 原文地址:https://www.cnblogs.com/liuxiutianxia/p/11046160.html
Copyright © 2020-2023  润新知