ITPub博客

首页 > 云计算 > 开源云工具 > 基于滴滴云DC2+Nginx搭建负载均衡方案

基于滴滴云DC2+Nginx搭建负载均衡方案

原创 开源云工具 作者:java06051515 时间:2018-11-14 14:43:34 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-10-26

  • 博文量
    167
  • 访问量
    150266