linux Nginx+Tomcat负载均衡、动静分离
摘要:Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。
目录
一、nginx负载均衡
二、nginx动静分离
三、反向代理和正向代理
四、配置nginx负载均衡负载均衡
五、总结
一、nginx负载均衡
1.nginx负载均衡
Nginx实现负载均衡是通过反向代理实现。
如图所示:
2.nginx配置参数
(1)upstream 服务池名
配置后端服务器池,以提供响应数据
(2)proxy_pass http://服务池名
配置将访问请求转发给后端服务器池的服务器处理
3.nginx 负载均衡的策略(分流策略)
(1) rr 负载均衡模式:
每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认10秒),该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后,那么将所有节点都恢复为有效继续探测,一般来说rr可以根据权重来进行均匀分配。
(2) least_conn 最少连接:
优先将客户端请求调度到当前连接最少的服务器。
(3) ip_hash 负载均衡模式:
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,但是ip_hash会造成负载不均,有的服务请求接受多,有的服务请求接受少,所以不建议采用ip_hash模式,session 共享问题可用后端服务的 session 共享代替 nginx 的 ip_hash。
(4) fair(第三方)负载均衡模式:
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
(5) url_hash(第三方)负载均衡模式:
基于用户请求的uri做hash。和ip_hash算法类似,是对每个请求按url的hash结果分配,使每个URL定向到同一个后端服务器,但是也会造成分配不均的问题,这种模式后端服务器为缓存时比较好。
二、nginx动静分离
1.nginx动静分离
服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端。
2.Nginx静态处理优势
(1)Nginx处理静态页面的效率远高于Tomcat的处理能力
(2)若Tomcat的请求量为1000次,则Nginx的请求量为6000次
(3)Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
(4)Nginx处理静态资源的能力是Tomcat处理的6倍
三、反向代理和正向代理
1.正向代理
(1)正向代理: 顺着请求的方向进行的代理,即代理服务器它是由你配置为你服务,去请求目标服务器地址。
(2)正向代理的作用:1.访问原来无法访问的资源,如google,2.可以做缓存,加速访问资源,3.对客户端访问授权,上网进行认证,4.代理可以记录用户访问记录 (上网行为管理),对外隐藏用户信息
2.反向代理
(1)反向代理: 跟正向代理相反,它是为目标服务器进行服务的,但是请求的流程还是: cieng -> proxy> server.
四、配置nginx负载均衡和动静分离
1.部署Nginx 负载均衡器
关闭防火墙安全机制
安装模块
创建用户
解压指定文件
安装路径和模块
编译安装
将nginx加入到sbin里,方便命令
重启服务,加入开机自启服务
网页验证Nginx 服务器192.168.140.111
2.部署2台Tomcat 应用服务器
(1)server 1 192.168.140.223
解压jdk文件
配置全局变量
解压tomcat文件
移动文件到/usr/local/tomcat
启动tomcat服务
(2)server 2 192.168.140.224
解压包
安装jdk
安装tomcat
配置全局文件
立即生效
启动服务
tomcat可以运行
3.动静分离配置
(1)Tomcat1 server 配置192.168.140.223
配置tomcat文件
注意此处:host name不可重复,复制服务无法启动
网页验证,可以访问
(2)Tomcat2 server 配置
创建动态文件
配置主配置文件
直接加入,host name不能重复
重启服务
网页验证 192.168.140.224
3.Nginx server 配置
创建静态文件夹
配置负载均衡
配置方向代理和location
重启服务
4.测试效果
测试静态页面效果
浏览器访问 http://192.168.140.111
浏览器访问 http://192.168.140.111/work.jpg
测试负载均衡效果,不断刷新浏览器测试
浏览器访问 http://192.168.140.111/index.jsp
第一次刷新是到第一个服务器
第二次刷新是到第二个服务器
五、总结
nginx强大的处理能力,还可以作为代理服务器,不仅保护服务器的安全,也可以做负载均衡增加性能,同时也可以完成反向代理,处理速度快。nginx和tomcat的合作是当前企业十分常见的组合,可以更好的搭配,提升性能和优化配置。