haproxy负载均衡和配合keepalived的快速部署

jopen 9年前

摘要 简单易配 haproxy作为代理转发服务器 keepalived作为高可用

四台服务器

  1. server1.example.com //realserver 本次实验作为httpd服务器

  2. server2.example.com //realserver  本次实验作为httpd服务器

  3. server3.example.com //安装haproxy 和 keepalived

  4. server4.example.com //安装haproxy 和 keepalived


server1.example.com server2.example.com 上只需要安装httpd服务即可,因为haproxy仅是个代理而已。


server3(4).example.com 上的操作 ps:本人采用rhel6.5系统

yum源配置高可用 ,安装keepalived   //    具体过程在我的博客《keepalived+lvs快速部署》里有

yum install haproxy -y

vim /etc/haproxy/haproxy.cfg  添加如下
stats  uri  /status    //打开自带的监控功能,清楚的查看状态
listen www.example.com *:80
balance roundrobin //轮询

listen stats_auth 172.25.254.3:80
stats enable
stats uri /status #监控页面地址
stats auth vision:leaf #管理帐号和密码
stats refresh 5s #刷新频率
server web1 172.25.254.1:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server web2 172.25.254.2:80 cookie app1inst2 check inter 2000 rise 2 fall 5 //要监控的两台web服务器

keepalived配置如下

! Configuration File for keepalived  global_defs {     notification_email {       root@localhost.com     }     notification_email_from root@localhost.com     smtp_server 127.0.0.1     smtp_connect_timeout 30     router_id LVS_DEVEL  }  vrrp_instance VI_1 {      state MASTER //另一台BACKUP      interface eth0      virtual_router_id 51      priority 150 //另一个备机找个比这小的数字就好了      advert_int 1      authentication {          auth_type PASS          auth_pass 1111      }      virtual_ipaddress {    172.25.254.100    //作为高可用的虚拟IP      }      track_script {          check_haproxy

opt下编辑这个脚本

vim /opt/check_haproxy.sh  !/bin/bash  /etc/init.d/haproxy status &> /dev/null || /etc/init.d/haproxy restart &> /dev/null  if [ $? -ne 0 ];then  /etc/init.d/keepalived stop &> /dev/null  fi  ~                               //脚本是对haproxy作健康检查,配合keepalived实现服务的VIP转移后的正常访问

完成配置后就可以实验了,

两台启动服务

/etc/init.d/haproxy start

/etc/init.d/keepalived start

web 访问172.25.254.3 因为3是master所以可以访问并且转发轮询到server1. server2

关闭server3的haproxy ,然后访问172.25.254.3访问不到了这时候应该去访问server4 ,作为备机ip是172.25.254.4

可以看到转发轮询到server1. server2

ok  

完结。