0
点赞
收藏
分享

微信扫一扫

25、Nginx健康性检查与反向代理负载均衡的调度算法与实现https的负载均衡

nginx是如何进行健康性检查的

健康性检查有两种策略,一种是主动性检查,如mycat,haproxy,keepalived定期向后端服务器发送命令进行判断服务器是否存活
还有一种是被动性健康性检查,nginx属于被动检查,当用户访问的时候才对后端服务器进行检查。默认1次不在线,就标记为不可用,对检测过不在线的服务器,默认10s检测其是否恢复。

nginx反向代理负载均衡的调度算法

1、RR, 轮询,默认  
2、WRR,权重
3、ip_hash;源地址hash调度方法,基于客户端的ipv4前24位地址或ipv6全部地址做hash计算。(和backup冲突) 
4、least_conn;#最少连接调度算法,优先将客户端请求调度到当前连接最少的后端服务器,相当于LVS中的WLC

5、hash KEY;
6、hash KEY [consistent]; 后面加consistent为使用一致性hash算法。
不加consistent,增加或减少服务器会打乱调度,产生大量的session失效(lvs没有)面试题  区别


包括hash $request_uri consistent;hash $remote_addr consistent;hash $cookie_sessionid;
hash $request_uri consistent;#基于用户请求的uri做hash,可以实现调度到后端缓存服务器功能
hash $remote_addr consistent;#则是对全部32bit的IPv4进行一致性hash计算
hash $cookie_sessionid consistent;#基于cookie中的sessionid这个key进行hash调度,实现会话绑定

实战案例:实现https的负载均衡

客户端到反向代理服务器为https协议,反向代理到后端服务器为http协议

[root@centos8 ~]#vim /apps/nginx/conf.d/proxy.conf 
upstream webservers { 
     server 10.0.0.101:80; 
     server 10.0.0.102:80; 
}
server { 
     listen 80; 
     server_name www.meng.org; 
     return 302 https://$server_name$request_uri; 
} 
server { 
     listen 443 ssl http2;
     server_name www.meng.org; 
     ssl_certificate   /apps/nginx/conf/conf.d/ssl/www.meng.org.pem; 
     ssl_certificate_key /apps/nginx/conf/conf.d/ssl/www.meng.org.key; 
     ssl_session_cache shared:sslcache:20m; 
     ssl_session_timeout 10m; 
     location / { 
     proxy_pass http://webservers;       
     proxy_set_header Host  $http_host; 
  } 
}

nginx -s reload


举报

相关推荐

0 条评论