Offer

Nginx[反向代理+动静分离+负载均衡+Session共享]与Redis的整合

  Nginx是一个web服务器,就是充当Client(用户) ----> Nginx(类似VPN)---->Server(tomcat)访问过程

  Redis:类似访问很快的缓存数据库,后面有redis和nginx的整合使用。。。

  Redis官方解释:

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
换句话说,Redis就像是一个HashMap,不过不是在JVM中运行,而是以一个独立进程的形式运行。一般说来,会被当作缓存使用。 因为它比数据库(mysql)快,所以常用的数据,可以考虑放在这里,这样就提高了性能。

 

反向代理:

正向代理:就比如访问google,由vpn服务器帮你访问
反向代理:你访问Google,但是Google把内容给vpn服务器
这VPN服务器分别就充当正向代理与反向代理工作

  动静分离:

Nginx处理静态内容(CSS,js,img比tomcat)吞吐量快很多,也就是为了提高访问速度修改nginx.conf即可

         location ~\.(css|js|png)$ {
            root C:/tomcat_8111/webapps/ROOT;
    }

  负载均衡:

  

多个tomcat,分配权值越大,访问几率越高,同样修改nginx.conf即可

   upstream tomcat_8111_8222{
    server    127.0.0.1:8111 weight=1;
    server    127.0.0.1:8222 weight=2;
    }
    location / {
            proxy_pass http://tomcat_8111_8222;
    }

  Session共享:

  下载jar包到tomcat的lib中即可,下载链接:https://files.cnblogs.com/files/meditation5201314/tomcat_jar.rar

  

由于nginx分配用户访问给不同tomcat,所以不同用户session需要保存,所以需要保存下来,2种方法

1.ip_hash(简单,加到nginx.conf即可,但是如果某个tomcat挂了,session也还是丢了而且大量的某局域网访问,负载均衡就不存在了)

2.redis:用户session存入redis,然后不同tomcat从redis取出来即可(加入jar包,修改tomcat/conf/context.xml即可【重启tomcat】)

 

posted @ 2020-03-27 16:46  Empirefree  阅读(237)  评论(0编辑  收藏  举报