加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

搭建高可用负载均衡器: haproxy+keepalived

发布时间:2018-08-31 10:05:22 所属栏目:外闻 来源:云栖社区
导读:副标题#e# 企业业务量比较小的时候,单台服务器就可以满足业务需要了。但是随着业务发展,单服务器的问题就凸显出来了: 当服务器挂掉时,业务就会中断 当业务量增加,单台服务器性能变差,如何透明的扩展服务器和带宽,增加服务器吞吐量 负载均衡器可以解
副标题[/!--empirenews.page--]

企业业务量比较小的时候,单台服务器就可以满足业务需要了。但是随着业务发展,单服务器的问题就凸显出来了:

  • 当服务器挂掉时,业务就会中断
  • 当业务量增加,单台服务器性能变差,如何透明的扩展服务器和带宽,增加服务器吞吐量

负载均衡器可以解决以上问题

本文会根据拓扑图,用haproxy和keepalived搭建一个负载均衡器

搭建高可用负载均衡器: haproxy+keepalived

1 负载均衡器拓扑图

搭建高可用负载均衡器: haproxy+keepalived

2 准备

2.1 准备环境

准备5台CentOS7.3主机和一个VIP地址:

  • 准备一个可用IP用作虚拟IP(VIP):

VIP: 192.168.1.100

  • 负载均衡器会用到2台主机,一主一备的架构

lb1(默认为主): 192.168.1.101

lb2(默认为备): 192.168.1.102

  • 后端服务器集群中主机的IP地址

s1: 192.168.1.2

s2: 192.168.1.3

s3: 192.168.1.4

2.2 主机配置

2.2.1 所有主机上关闭防火墙

  1. systemctl stop firewalld 
  2. systemctl disable firewalld 

2.2.2 所有主机关闭selinux

  1. setenforce 0 
  2. vi /etc/selinux/config 
  3. SELINUX=disabled 

2.3 安装haproxy和keepalived

lb1和lb2上安装haproxy和keepalived

  1. yum install haproxy keepalived -y 

2.4 安装nginx(有其他后端测程序,可省略此步)

s1 s2 s3上安装nginx,目的是把nginx作为后端,如果有其他后端程序,这一步可以省略

  1. yum install epel-release -y 
  2. yum install nginx -y 

2.3 配置keepalived

KeepAlived是基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)实现的一个高可用方案,通过VIP(虚拟IP)和心跳检测来实现高可用

Keepalived有两个角色,Master和Backup。一般会是1个Master,多个Backup。

Master会绑定VIP到自己网卡上,对外提供服务。Master和Backup会定时确定对方状态,当Master不可用的时候,Backup会通知网关,并把VIP绑定到自己的网卡上,实现服务不中断,高可用

2.3.1 配置Master

  1. ! Configuration File for keepalived 
  2.  
  3. global_defs { 
  4.    # 通知邮件服务器的配置 
  5.    notification_email { 
  6.      # 当master失去VIP或则VIP的时候,会发一封通知邮件到your-email@qq.com 
  7.      your-email@qq.com 
  8.    } 
  9.    # 发件人信息 
  10.    notification_email_from keepalived@qq.com 
  11.    # 邮件服务器地址 
  12.    smtp_server 127.0.0.1 
  13.    # 邮件服务器超时时间 
  14.    smtp_connect_timeout 30 
  15.    # 邮件TITLE 
  16.    router_id LVS_DEVEL 
  17.  
  18. vrrp_instance VI_1 { 
  19.     # 主机: MASTER 
  20.     # 备机: BACKUP 
  21.     state MASTER 
  22.     # 实例绑定的网卡, 用ip a命令查看网卡编号 
  23.     interface eno16777984 
  24.     # 虚拟路由标识,这个标识是一个数字(1-255),在一个VRRP实例中主备服务器ID必须一样 
  25.     virtual_router_id 88 
  26.     # 优先级,数字越大优先级越高,在一个实例中主服务器优先级要高于备服务器 
  27.     priority 100 
  28.     # 主备之间同步检查的时间间隔单位秒 
  29.     advert_int 1 
  30.     # 验证类型和密码 
  31.     authentication { 
  32.         # 验证类型有两种 PASS和HA 
  33.         auth_type PASS 
  34.         # 验证密码,在一个实例中主备密码保持一样 
  35.         auth_pass 11111111 
  36.     } 
  37.     # 虚拟IP地址,可以有多个,每行一个 
  38.     virtual_ipaddress { 
  39.         192.168.1.100 
  40.     } 
  41.  
  42. virtual_server 192.168.1.100 443 { 
  43.     # 健康检查时间间隔 
  44.     delay_loop 6 
  45.     # 调度算法 
  46.     # Doc: http://www.keepalived.org/doc/scheduling_algorithms.html 
  47.     # Round Robin (rr) 
  48.     # Weighted Round Robin (wrr) 
  49.     # Least Connection (lc) 
  50.     # Weighted Least Connection (wlc) 
  51.     # Locality-Based Least Connection (lblc) 
  52.     # Locality-Based Least Connection with Replication (lblcr) 
  53.     # Destination Hashing (dh) 
  54.     # Source Hashing (sh) 
  55.     # Shortest Expected Delay (seq) 
  56.     # Never Queue (nq) 
  57.     # Overflow-Connection (ovf) 
  58.     lb_algo rr 
  59.     lb_kind NAT 
  60.     persistence_timeout 50 
  61.     protocol TCP 
  62.     # 通过调度算法把Master切换到真实的负载均衡服务器上 
  63.     # 真实的主机会定期确定进行健康检查,如果MASTER不可用,则切换到备机上 
  64.     real_server 192.168.1.101 443 { 
  65.         weight 1 
  66.         TCP_CHECK { 
  67.             # 连接超端口 
  68.             connect_port 443 
  69.             # 连接超时时间 
  70.             connect_timeout 3 
  71.         } 
  72.     } 
  73.     real_server 192.168.1.102 443 { 
  74.         weight 1 
  75.         TCP_CHECK { 
  76.             connect_port 443 
  77.             connect_timeout 3 
  78.         } 
  79.     } 

2.3.2 配置BACKUP

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读