Nginx与Tomcat的负载均衡和动静分离群集
1. Tomcat重要目录
- bin:存放启动和关闭Tomcat的脚本
- conf:存放Tomcat不同的配置文件
- doc:存放Tomcat的文档
- lib:存放运行Tomcat所需要的库文件
- logs:存放Tomcat执行任务时的LOG文件
- src:存放Tomcat的源代码
- webapps:Tomcat的主要Web发布目录
- work:存放jsp编译后产生的class文件
2. Nginx的负载均衡原理
2.1 正向代理与反向代理
-
正向代理
原理:为客户端服务,代理客户端向服务端发起请求 应用:VPN
-
反向代理
原理:为服务端服务,代理服务端接收客户端的请求 应用:负载均衡
2.2 负载均衡
-
定义:将用户访问的请求根据对应的负载均衡算法,分发到集群中的一台服务器进行处理。
-
Nginx通过反向代理实现负载均衡
-
配置的主要参数
upstream 服务池名 {}配置后端服务器池,用以提供相应数据
proxy_pass http://服务池名
将访问请求转发给后端服务器池的服务器处理
注:以上为负载均衡的软件,负载均衡的硬件为F5
2.3 分流策略
-
rr 负载均衡模式:
每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认10秒),该节点失效权重变为0;超过失效时间后,则恢复正常;或者全部节点都为down后,那么将所有节点都恢复为有效继续探测。一般来说rr可以根据权重来进行均匀分配。 -
least_conn 最少连接:
优先将客户端请求调度到当前连接最少的服务器。 -
ip_hash 负载均衡模式:
每个请求按访问ip的hash结果分配,这样可以让每个访客固定访问一个后端服务器来解决session的问题。但是这样服务器之间任务分配数量悬殊,ip_hash会造成负载不均,所以不建议采用ip_hash模式。session 共享问题可用后端服务的session共享代替nginx的ip_hash。 -
fair(第三方)负载均衡模式:
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 -
url_hash(第三方)负载均衡模式:
基于用户请求的uri做hash。与ip_hash算法类似,是对每个请求按url的hash结果分配,使每个URL定向到同一个后端服务器,但是也会造成分配不均的问题,这种模式在后端服务器为缓存时采用比较好。
3. Nginx的动静分离原理
当服务端代理服务器接收来自客户端的请求时,Nginx直接处理静态资源,把动态资源转发给后端处理(Tomcat服务器)。
注:Nginx处理静态资源的效率是Tomcat的6倍