- 一、Nginx特点
- 二、架构部署
- 1、7层负载均衡
- 2、Nginx负载均衡算法
- 3、upstream支持的状态参数
一、Nginx特点
功能强大,性能卓越,运行稳定
配置简单灵活
能够自动剔除工作不正常的后端服务器
上传文件使用异步模式,client—nginx—web1 web2 web3 lvs同步请求 DR client -->dr—web1
支持多种分配策略,可以分配权重
优势:nginx复制用户请求,在后端服务器出现问题时,nginx会再复制一份请求发给另一台后端服务器。
缺点:流量会经过nginx,nginx成为瓶颈
二、架构部署 ip role
192.168.116.131 client
192.168.116.132 nginx
192.168.116.133 httpd-html1
192.168.116.134 httpd-html2
192.168.116.135 nginx-php1
192.168.116.136 nginx-php1
1、7层负载均衡
通过location对不同的请求进行进行负载均衡,因为通过http协议,所以称作7层
# vim /etc/nginx/conf.d/default.conf
server {
location ~ .php$ { # 定位
proxy_pass http://php; # 推送上游主机组
}
location ~ .html$ {
proxy_pass http://html;
}
}
---------------------------------------------------------------------------------------------------------------
http {
upstream html { # 后方服务器组
server 192.168.116.133:80 weight=1; # 真实服务器
server 192.168.116.134:80 weight=1;
}
upstream php {
server 192.168.116.135:80 weight=1;
server 192.168.116.136:80 weight=1;
}
}
# systemctl start nginx2、Nginx负载均衡算法
①、rr(默认)
轮询方式,依次将请求分配到各个后台服务器中,默认的负载均衡方式。
适用于后台机器性能一致的情况。
挂掉的机器可以自动从服务列表中剔除。
②、wrr
根据权重来分发请求到不同的机器中,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
③、 IP_hash
根据每个请求IP进行调度,可以解决session的问题,不能使用weight,同一个客户端IP,发给同一个web服务器。
④、url_hash(第三方)
按请求的url的hash进行调度,从而使每个url定向到同一服务器。
⑤、fair
可以根据请求页面的大小和加载时间长短进行调度,使用第三方的upstream_fair模块。需要安装第三方插件,请求页面比较大,转发给后端配置比较高的服务器。
3、upstream支持的状态参数down:暂停对该服务器的调度
backup:类似于LVS Sorry Server,当所有的非backup的服务器故障,就转发这台服务器
max_fails:转发请求失败的次数,进行尝试。默认为1。
fail_timeout:在经历max_fails次失败后,暂停真实服务器服务的时间。单位秒。在这个时间内不进行转发给他。
server 192.168.1.21:80 weight=1 down max_fails=2 fail_timeout=2;



