Nginx学习笔记3-Nginx的session问题以及实现动静分离

Nginx的session变化问题

Nginx使用轮询session会随着不断切换变化,如果使用需要登陆的系统 那就会要求重复登录。

这显然是十分不合理的,哪个用户会容忍这样的系统咯。

所以此处就要考虑怎么解决这个问题了。下面有三种办法

1.tomcat session同步
  在tomcat中增加云集群配置,基本不用 这里就不详细讲述了。需要可以百度

2.使用iphash算法

Nginx算法中的iphash算法可以使每次请求转发到固定的服务器上。

但是这也是有一定的缺点的:不容灾,出现单点故障了就会有很大的影响。

但是一般的小型系统足够使用了。下图在nginx.conf文件中配置

Nginx学习笔记3-Nginx的session问题以及实现动静分离

3.session外置

这种方式是最常用的方式了,可以使用缓存数据库。例如redis 

使用例如用户id加上当前时间戳 生成字符串 经过一定加密手段 例如AES和RSA 对称和非对称加密算法。

生成Token 存入redis中。这种方式也是相对来说安全的了。

 

Nginx的动静分离

nginx还有一个强大的功能就是动静分离。意思就是静态资源,例如静态图片,可以直接放在nginx中。不用去请求服务器,使得响应时间相应缩短。服务器挂了,静态资源还是能够访问的到。

下面是一定的配置:

Nginx学习笔记3-Nginx的session问题以及实现动静分离

当然前段的路径也是以nginx下的html文件夹为根目录的。所以前段访问路径不能错。

一个系统瓶颈在tomcat,还有就是数据库  nginx不处理业务 只是分发请求。(解决办法:分库分表,面向服务架构)