首页 > 云计算 > 开源云工具 > 基于滴滴云DC2+Nginx搭建负载均衡方案
Nginx是一款轻量级、高性能的Web服务器,专为高流量应用场景而设计。
本文主要介绍它的健康检查和负载均衡机制。健康检查和负载均衡是相辅相成,健康检查能够及时标记出服务异常的后端RS,使得数据面负载到可用的RS上,提高系统的可靠性和高可用。
Nginx支持丰富的第三方模块,这里示例以ngx_http_upstream_round_robin(简称RR)做为负载均衡模块,以ngx_http_proxy_module(检查proxy)作为后端代理模块。
健康检查有两种方式:
1)ngx_http_proxy_module模块和ngx_http_upstream_module模块(这是Nginx自带模块)
2)nginx_upstream_check_module模块(淘宝技术团队开发)
Nginx的upstream目前支持5种方式的负载算法:
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
ip_hash
每个请求按访问ip的hash结果分配,每个访客固定访问一个后端服务器,可以解决session的问题
fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配
url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效
部署步骤
在滴滴云官网,可以申请多个DC2实例,节省费用:
场景说明
比如,这里示例四个滴滴云DC2实例分别为:10.255.10.12(Client)、10.255.44.122(Nginx Proxy)、10.255.15.111(RS1)、10.255.24.133(RS2),这里的滴滴云DC2实例需要处在同一个VPC即可,不必同一子网。
配置Nginx负载均衡和健康检查功能
通过yum install nginx就可以在DC2实例内安装Nginx服务,Nginx默认是以 conf/nginx.conf作为启动配置的,我们可以根据自己的需求在nginx.conf(默认路径是/etc/nginx/nginx.conf)中配置负载均衡和健康检查。
nginx.conf内容如下(Note:以下所有配置仅仅为测试所用,不代表线上环境真实所用,真正的线上环境需要更多配置和优化):
修改配置文件后,nginx -s reload平滑重启Nginx,即可生效。
ngx_http_upstream_check_module
该模块可以为Tengine提供主动式后端服务器健康检查的功能,该模块在Tengine-1.4.0版本以前没有默认开启,它可以在配置编译选项的时候开启:./configure --with-http_upstream_check_module
通过curl ,查看健康检查状态:
小结:
滴滴云为用户提供了SLB,给用户提供了高可用和高可靠性的负载均衡产品,用户也可以自己选择使用Nginx搭建自定义的网络,Nginx提供了丰富的第三方模块,部署灵活,基于DC2+Nginx搭建负载均衡网络也是不错的选择。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31559758/viewspace-2219923/,如需转载,请注明出处,否则将追究法律责任。