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】)
我曾七次鄙视自己的灵魂:
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。