一、Nginx简介
Nginx是一款开源的、高性能的服务器。它既可以作为HTTP服务器,又可以作为反向代理服务器或者邮件服务器;它能快速的响应静态页面(HTML),支持FastCGI、SSL、Gzip等功能,也支持第三方模块的扩展。
(Nginx源码地址:https://trac.nginx.org/nginx/browser)
二、负载均衡简介
前端大量的并发请求和数据流量分担到后端的多个网络节点上分别处理,这样有效减少了前端的响应时间,进一步提高用户的体验感。因此Nginx的负载均衡主要是对前端大量请求或者数据流量进行分流操作。
三、Nginx负载均衡的分类
1、内置策略:
(1)轮询:Nginx默认的策略,将前端的每个请求顺序给到后端的节点,如果后端的某个节点异常,会自动踢除此节点。
(2)加权轮询:跟轮询差不多,区别在于权重较大的后端节点,处理的请求数相对较多。
(3)IP Hash:将前端的IP进行Hash操作,将结果分配到后端节点上。这种策略进一步解决的后端多节点Session共享问题。
2、扩展策略:
(1)url Hash:将url进行Hash操作,将其结果分配到后端节点上。如果后端有缓存服务器,可以提高缓存效率,能解决Session 问题;缺点是后端有节点出现异常,不能自动踢除。
(2)fair:该模块将前端请求分配到最近负载较小的后端节点上。那如何判断负载较小呢?Nginx通过请求到后端节点的响应时间长短来判断,响应时间短的,负载相对较小。
四、实战演练 - 搭建负载均衡服务器
(1)VMware虚拟四台内核为CentOS系统的机器
(2)作为反向代理服务器机器的IP:192.168.182.133
另外三台服务器机器的IP:192.168.182.134 192.168.182.135 192.168.182.136
(3)分配在上述四台机器上源码安装Nginx
(4)源码安装Nginx
下载
解压
编译(Nginx编译需要gcc库、pcel-devel,zlib-devel库,没有则编译报错)
安装(make && make install)
(5)打开反向代理服务器的配置文件nginx.conf,添加
(6)保存配置。为了方便查看测试效果,Nginx下面的html目录里面的index.html文件,写入所在服务器的IP地址。
(7)启动四台机器的Nginx服务。
(8)访问192.168.182.133:8080,不断刷新,会轮流输出后端服务器的IP
补充:
加权轮询
IP Hash