前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Haproxy+Keepalived+Apache实现高可用

Haproxy+Keepalived+Apache实现高可用

作者头像
星哥玩云
发布2022-07-14 09:26:31
3100
发布2022-07-14 09:26:31
举报
文章被收录于专栏:开源部署开源部署

Haproxy通过结合Keepalived实现负载均衡器节点的高可用

环境介绍:CentOS 6.5平台 Haproxy1:10.10.10.128/24 Haproxy2:10.10.10.129/24 web1:10.10.10.130/24 web2:10.10.10.131/24 VIP:10.10.10.100/24

部署前准备: 1、时间同步: ntpdate ntp1.aliyun.com 2、防火墙策略: service iptables stop chkconfig iptables off 3、SELinux策略: sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config 4、更换国内yum源: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo yum clean all yum makecache 5、重启服务器 reboot

web服务器配置: 1、安装httpd服务     yum install httpd -y 2、修改配置文件:/etc/httpd/conf/httpd.conf     .....     Listen 8080     ServerName 10.10.10.130:8080  #web1     ServerName 10.10.10.131:8080  #web2 3、修改web主页:/var/www/html/index.html     echo "web1" >/var/www/html/index.html    #web1     echo "web2" >/var/www/html/index.html    #web2 4、启动web服务:     service httpd start     chkconfig httpd on 5、验证服务是否正常:     lsof -i:8080     curl 10.10.10.130:8080  #返回web1     curl 10.10.10.131:8080  #返回web2

Haproxy服务器配置: 1、安装Haproxy服务     yum install haproxy -y 2、修改配置文件:/etc/haproxy/haproxy.cfg     cp /etc/haproxy/haproxy /etc/haproxy/haproxy.cfg.bak     vim /etc/haproxy/haproxy.cfg   .........   ......... #--------------------------------------------------------------------- # main frontend which proxys to the backends #--------------------------------------------------------------------- frontend  main     bind 0.0.0.0:80     acl url_static      path_beg      -i /static /images /javascript /stylesheets     acl url_static      path_end      -i .jpg .gif .png .css .js

    use_backend static          if url_static     default_backend            dynamic

#--------------------------------------------------------------------- # static backend for serving up images, stylesheets and such #--------------------------------------------------------------------- backend static     balance    roundrobin     server      static 127.0.0.1:80 check

#--------------------------------------------------------------------- # round robin balancing between the various backends #--------------------------------------------------------------------- backend dynamic     balance    roundrobin     server  web1 10.10.10.130:8080 check maxconn 2000     server  web2 10.10.10.131:8080 check maxconn 2000

3、检测配置文件是否正确:     haproxy -c -f /etc/haproxy/haproxy.cfg

4、启动Haproxy     service haproxy start     chkconfig haproxy on 5、验证是否正常解析:     curl 10.10.10.128  //重复两次,分别显示web1和web2     curl 10.10.10.129  //重复两次,分别显示web1和web2

Keepalived配置: 1、安装keepalived服务:     yum -y install keepalived 2、修改配置文件: #MASTER端: ! Configuration File for keepalived #定义检查脚本 vrrp_script check_haproxy {         script "/etc/keepalived/check_haproxy.sh"         interval 2         weight 2 } global_defs {   notification_email {         root@localhost   }   notification_email_from keepalived@localhost   smtp_server 127.0.0.1   smtp_connect_timeout 30   router_id haproxy1 }

vrrp_instance ha1 {     state MASTER     interface eth0     virtual_router_id 51     priority 100     advert_int 1     authentication {         auth_type PASS         auth_pass 1111     }     virtual_ipaddress {         10.10.10.100/24 dev eth0     }     track_script{         check_haproxy     } }

#BACKUP端: ......... router_id haproxy2  #修改虚拟路由的ID state BACKUP  #修改角色 priority 80    #修改优先级

重启各服务: service keepalived restart service haproxy restart

验证: ip addr 发现虚拟ip:10.10.10.100在MASTER端 访问10.10.10.100正常

/etc/keepalived/check_haproxy.sh

#!/bin/bash A=`ps -C haproxy --no-header |wc -l` if [ $A -eq 0 ];then /etc/init.d/keepalived stop fi

验证Haproxy+Keepalived服务的可靠性:

web端:关闭web1的httpd服务,service httpd stop curl 10.10.10.100  #正常返回web2 Haproxy端:关闭haproxy1的keepalived服务,service keepalived stop curl 10.10.10.100 #正常轮询返回web1/web2 通过ip addr 可以查看 VIP漂移到Haproxy2中

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档