typora-copy-images-to: img
typora-root-url: img
1. 聊聊集群中会出现的问题
一个项目最开始可能都是通过一个war包开始萌芽,把这个war包放到tomcat里面运行起来,整个项目就ok了;
But,随着并发量,用户量达到一定数目,一个tomcat就搞不定了,这个时候会用到Nginx,使用Nginx来做分流;
如果是一些查询页面没什么问题,可一旦项目要用到登陆,这就捅娄子了,用户登陆的Session是存放在服务器上,而当用户访问另外一个服务器就会出现没有登陆的情况;
不过在解决这问题之前,先讲下Nginx的基本使用
1.1. Nginx****多tomcat负载配置
Nginx可以提供当有多个服务器的时候可以提供负载均衡的功能,如果有某个服务器宕机可以提供故障转移,当出现网络波动的时候可以提供失败重试机制,不管是什么样的机制,首先需要配置多个服务,这里的服务使用Upstream进行配置
1.1.1. Upstream Server配置
upstream 主要配置如下:
IP地址和端口号:配置上游服务器的IP地址和端口
1.1.2. 负载均衡算法
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。
2、weight(轮询权值)
weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。
3、ip_hash
每个请求按客户端P的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。俗称IP绑定。
1.2. Session一致性解决方案
可以看到前面讲负载均衡算法的时候可以使用ip_ha