nginx集群概念
nginx集群就是使用nginx将多个后端rs 业务服务器串联起来,统一向外界提供服务。
nginx在集群中扮演的角色:分发器
nginx在集群中的任务:接收请求、分发请求、响应请求
功能模块:1)ngx_http_upstream_module 处理7层分发 2)ngx_stream_core_module 处理4层分发,1.9版本开始支持该模块
nginx集群原理
原理:虚拟主机+反向代理+upstream分发模块
虚拟主机:接受和响应请求
反向代理:配置接受的数据在反向代理内找对应的upstream模块
upstream:配置真正后端rs的信息,nginx的请求命中upstream就会根据upstream中的配置方式将请求转给后端rs
轮询 权重 ip_hash转发
实验环境信息
nginx分发器:192.168.43.133 业务服务器RS1:192.168.43.132 业务服务器RS2:192.168.43.129;为了方便测试,RS1 RS2业务服务器也使用nginx部署
RS1索引页配置
RS2索引页配置
nginx分发器配置
轮询转发
默认upstream配置发往后端rs是轮询转发,测试效果如下。
应用场景:后端rs性能基本相当,且后端提供的都是静态资源
根据权重转发
后端rs设置不同权重,nginx转发器按照rs权重将请求转发给后端rs。
应用场景:后端rs性能差异较大,且后端提供的都是静态资源
nginx转发器配置
请求转发器测试实验,后端rs按照设置的权重比例收到转发器转发的请求
ip_hash转发
nginx转发器可以根据源ip hash来选择rs转发,这样能够保证相同源ip的请求能够被分配到同一个后端rs上。
nginx转发器配置
Ip_hash转发效果实验,相同源地址的请求总是发给同一个后端RS
后端rs设置down状态
当后端rs在upstream配置中被设置为down状态时nginx转发器就不会向该rs转发请求了,一般和后端rs的健康检查联动
nginx转发器配置
转发效果测试,即使配置轮询转发测试时不会向down状态的rs转发请求