HAProxy+Keepalived高可用负载均衡配置

简介:




 前言随着负载均衡器的成熟,人们熟知的软件负载均衡如LVSHAProxy,各方面性能不亚于硬件负载均衡,HAProxy提供高可用性、负载均衡以及基于TCPHTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。

我们平时用的负载均衡LVS是基于四层,新型的大型互联网公司也在采用HAProxy,了解了haproxy大并发、七层应用等特点,那今天我们来研究一下HAProxy+Keepalived基于七层负载高可用负载均衡的配置。

一、系统环境:

 
  1. 系统版本:CentOS6.0 x86_64
  2. HAProxy版本:1.4.21  
  3. Keepalived版本:1.2.1 
  4.  
  5. Nginx版本:1.2.2
  6. MASTER_IP:192.168.0.130  
  7. BACKUP_IP:192.168.0.131 
  8.  
  9. VIP:192.168.0.133  
  10. WEB_1:192.168.0.134  
  11. WEB_2:192.168.0.135 

二、HAProxy安装:

1)首先安装192.168.0.130上安装:

下载最新稳定版本:1.4.21

 
  1. cd /usr/src  ;wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.21.tar.gz  
  2.   
  3. tar xzf haproxy-1.4.21.tar.gz &&cd haproxy-1.4.21 &&make TARGET=linux26 PREFIX=/usr/local/haproxy &&make install PREFIX=/usr/local/haproxy  
  4. 安装完毕,在/usr/local/haproxy/目录下会看到三个目录:doc、sbin、share 

2) 接下来配置HAProxy

cd /usr/local/haproxy ;mkdir -p etc/

然后在/usr/local/haproxy/etc/下新建haproxy.cfg文件,这里拷贝haproxy配置文件:

 
  1. global  
  2.  
  3.         log 127.0.0.1   local0  
  4.  
  5.         maxconn 65535  
  6.  
  7.         chroot /usr/local/haproxy  
  8.  
  9.         uid 99     
  10.  
  11.         gid 99  
  12.  
  13.         daemon  
  14.  
  15.         nbproc 8  
  16.  
  17.         pidfile /usr/local/haproxy/haproxy.pid  
  18.   
  19.  
  20. defaults   
  21.  
  22.          log     127.0.0.1       local3   
  23.  
  24.          mode   http   
  25.  
  26.          option httplog   
  27.  
  28.          option httpclose   
  29.  
  30.          option dontlognull   
  31.  
  32.          option forwardfor   
  33.  
  34.          option redispatch   
  35.  
  36.          retries 2   
  37.  
  38.          maxconn 65535   
  39.  
  40.          balance source   
  41.  
  42.          stats   uri     /web-status   
  43.  
  44.          contimeout      5000   
  45.  
  46.          clitimeout      50000   
  47.  
  48.          srvtimeout      50000   
  49.  
  50.   
  51.  
  52. listen  chinaapp.sinaapp.com  
  53.  
  54.         bind *:80  
  55.  
  56.         mode http  
  57.  
  58.         option httplog  
  59.  
  60.         log global  
  61.  
  62.         option httpchk HEAD /index.html HTTP/1.0  
  63.  
  64.         server web1  192.168.0.134:80 weight 5  check inter 2000 rise 2 fall 3  
  65.  
  66.         server web2  192.168.0.135:80 weight 5  check inter 2000 rise 2 fall 3 

然后启动haproxy,如下执行启动命令:

 
  1. /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg 
  2.  
  3. [WARNING] 217/202150 (2857) : Proxy 'chinaapp.sinaapp.com': in multi-process mode, stats will be limited to process assigned to the current request. 
  4.  
  5. 会提示如上信息,nbproc进程如果设置为1则不会提示,如果想去掉这个提示可以修改编译文件即可。 在源码配置src/cfgparse.c找到如下行
  6. if (nbproc > 1) { if (curproxy->uri_auth) { - Warning("Proxy '%s': in multi-process mode, stats will be limited to process assigned to the current request.\n",
    + Warning("Proxy '%s': in multi-process mode, stats will be limited to the process assigned to the current request.\n",
    调整nbproc > 1数值即可。

三、安装Keepalived:

 
  1. cd /usr/src ; 
  2.  
  3. wget http://www.keepalived.org/software/keepalived-1.2.1.tar.gz 
  4.  
  5. tar xzf keepalived-1.2.1.tar.gz 
  6.  
  7. cd keepalived-1.2.1 && 
  8.  
  9. ./configure –with-kernel-dir=/usr/src/kernels/2.6.32-71.el6.x86_64/  &&make &&make install 
  10.  
  11. DIR=/usr/local/ ;cp $DIR/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/ && cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p /etc/keepalived  && cp $DIR/sbin/keepalived /usr/sbin/ 

四、配置keepalived:

 
  1. ! Configuration File for keepalived 
  2.  
  3. global_defs { 
  4.  
  5.  notification_email { 
  6.  
  7.      wgkgood@139.com 
  8.  
  9.  
  10.    notification_email_from wgkgood@139.com 
  11.  
  12.    smtp_server 127.0.0.1 
  13.  
  14.    smtp_connect_timeout 30 
  15.  
  16.    router_id LVS_DEVEL 
  17.  
  18.  
  19. vrrp_script chk_haproxy { 
  20.  
  21.    script "/data/sh/check_haproxy.sh" 
  22.  
  23.    interval 2 
  24.  
  25.    weight 2 
  26.  
  27.  
  28. # VIP1 
  29.  
  30. vrrp_instance VI_1 { 
  31.  
  32.     state BACKUP 
  33.  
  34.     interface eth0 
  35.  
  36.     lvs_sync_daemon_inteface eth0 
  37.  
  38.     virtual_router_id 151 
  39.  
  40.     priority 100 
  41.  
  42.     advert_int 5 
  43.  
  44.     nopreempt 
  45.  
  46.     authentication { 
  47.  
  48.         auth_typePASS 
  49.  
  50.         auth_pass 2222 
  51.  
  52.     } 
  53.  
  54.     virtual_ipaddress { 
  55.  
  56.         192.168.0.133 
  57.  
  58.     } 
  59.  
  60.     track_script { 
  61.  
  62.     chk_haproxy 
  63.  
  64.    } 
  65.  

五、创建haproxy脚本:

设置可执行权限chmod +x check_haproxy.sh,内容如下:

 
  1. #!/bin/bash 
  2.  
  3. #auto check haprox process 
  4.  
  5. #2012-8-12 wugk 
  6.  
  7. killall -0 haproxy 
  8.  
  9.   if 
  10.  
  11.   [[ $? -ne 0 ]];then 
  12.  
  13.   /etc/init.d/keepalived stop 
  14.  
  15.   fi 

BACKUP同样如上配置haproxykeepalived,配置完修改优先级为90即可,然后启动。

六、测试haproxy+keepalived

如图当手动kill 131haproxy进程后,130keepalived后台日志显示如下,并且访问VIP 192.168.0.133 正常访问:

访问haproxy status如下图:

本文参考煮酒兄http://andrewyu.blog.51cto.com/1604432/669491 HAProxy+Keepalived高可用负载均衡配置



本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/961544

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
29天前
|
弹性计算 负载均衡 容灾
slb配置后端服务器组
配置阿里云SLB后端服务器组涉及四个主要步骤:创建服务器组、添加ECS实例、关联监听规则和设定负载均衡策略。这使得流量根据业务需求和服务器特性进行转发,便于应用架构的灵活管理和扩展,支持蓝绿部署、灰度发布,并通过多可用区提升系统可用性和容灾能力。
25 3
|
4月前
|
负载均衡 网络协议 网络架构
VRRP负载均衡模式配置实用吗?
VRRP负载均衡模式配置实用吗?
65 0
|
30天前
|
弹性计算 缓存 网络协议
slb配置监听规则
配置Server Load Balancer的监听规则涉及选择协议(如HTTP/HTTPS/TCP/UDP)、设置端口,配置后端服务器组,设定健康检查(TCP或HTTP),定义转发规则(轮询、权重等),配置SSL证书、会话保持及安全优化措施。在阿里云上,这可通过登录控制台,选择SLB实例,添加监听并设置相关参数来完成。不同云服务商的具体步骤可能略有差异,参考官方文档为宜。
31 3
|
1月前
|
弹性计算 负载均衡 算法
SLB配置与使用
SLB配置与使用
22 4
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
228 0
|
2月前
|
数据采集 负载均衡 应用服务中间件
Python爬虫之Splash负载均衡配置#7
Splash负载均衡配置【2月更文挑战第28天】
33 0
|
2月前
|
存储 缓存 运维
解密一致性哈希算法:实现高可用和负载均衡的秘诀
解密一致性哈希算法:实现高可用和负载均衡的秘诀
130 0
|
3月前
|
负载均衡 网络协议 小程序
Nginx配置Tcp负载均衡
Nginx配置Tcp负载均衡
|
3月前
|
Kubernetes 负载均衡 监控
Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装
Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装
|
4月前
|
负载均衡 算法 应用服务中间件
(原理及配置)nginx配置负载均衡
(原理及配置)nginx配置负载均衡
73 1