设为首页 收藏本站
查看: 1540|回复: 0

[经验分享] Haproxy+keepalived (Web负载均衡解决方案)

[复制链接]

尚未签到

发表于 2018-12-30 07:17:42 | 显示全部楼层 |阅读模式
  Haproxy+keepalived

(双机热备+高可用)---可用于虚拟云上


注释:配置相对比lvs+keepalived 简单!---Haproxy自身有健康检测的功能!
设备资源:
Haproxy1172.16.1.165
Haproxy2172.16.1.196
VIP 172.16.1.223
Realserver1172.16.1.195
Realserver2172.16.1.155

Author:darkyinliang@163.com

一、首先配置Haproxy1Haproxy2 (配置一样)
1、下载包:wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz
tar -zxvf haproxy-1.3.20.tar.gz
cd haproxy-1.3.20
# 说明:linux下指定内核的版本
make TARGET=linux26 PREFIX=/usr/local/haproxy   
make install PREFIX=/usr/local/haproxy  
cd /usr/local/haproxy
在此目录下创建haproxy.cfg文件:
[root@asdasda haproxy]# vim /usr/local/haproxy/haproxy.cfg

global
log 127.0.0.1 local0
#log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
chroot /usr/local/haproxy
uid 99 #所属运行的用户uid
gid 99 #所属运行的用户组
Daemon  #后台运行
nbproc 1  # 开启haproxy线程数(大点处理能力强点)
pidfile /usr/local/haproxy/run/haproxy.pid
#debug
#quiet
defaults
log global
log 127.0.0.1 local3 #日志文件的输出定向
mode http #所处理的类别
option httplog #日志类别
option httpclose
option dontlognull
option forwardfor
option redispatch
retries 2 #设置多个haproxy并发进程提高性能
maxconn 2000  #
balance roundrobin #负载均衡算法
stats uri /haproxy-stats #haproxy 监控页面的访问地址
stats auth admin:123456  # 是登录这个页面的管理员:密码
# 可通过 http://localhost/haproxy-stats 访问
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen web 0.0.0.0:80 #运行端口及主机--这个vip就是40,因为在keepalived进行配置了!
mode http
option httpchk GET /index.txt #健康检测
server s1 172.16.1.195:80 cookie 1 check inter 2000 rise 2 fall 5   # 后端主机IP &端口80可换
server s2 172.16.1.155:80 cookie 2 check inter 2000 rise 2 fall 5   # 后端主机IP &端口80可换


#—以上配置分别放到两台haproxy的相同目录下即可!———————————
1 注释:cookie 1表示serverid1,  

2 check inter 1500 是检测心跳频率  

3 rise 22次正确认为服务器可用  

4 fall 5是5次失败认为服务器不可用  

5 weight代表权重


二、配置高可用keepalived(两台机器上基本相同只是修改两行:state BACKUP/MASTER  和优先级priority 120/150

首先安装keepavlied
tar -zxvf keepalived-1.1.17.tar.gz
安装这个之前,有个细节注意/usr/src/kernels/2.6.18-238.el5-i686/这个下看有东西没!
如果没有:执行yum install kernel-devel -y,有则继续!
ln -s /usr/src/kernels/2.6.18-238.el5-i686/ /usr/src/linux
cd keepalived-1.1.17
./configure --prefix=/usr/local/keepalived
make
make install
安装后,把人家提供好的文件进行对应的复制!
ld1#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived  /etc/init.d/
ld1#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ld1#mkdir -pv /etc/keepalived
mkdir: 已创建目录 “/etc/keepalived
ld1#cp /usr/local/keepalived/etc/keepalived/keepalived.conf  /etc/keepalived/
ld1#ln -s /usr/local/keepalived/sbin/keepalived /sbin/

1、下面是Haproxy1172.16.1.165  的配置(keepalived.conf

[root@gfhhg keepalived]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

vrrp_script chk_http_port {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight 2

global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 80
priority 120
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}

track_script {
chk_http_port
}

virtual_ipaddress {
172.16.1.223
}
}
}

2、下面是Haproxy2172.16.1.196  的配置:

[root@asdasda haproxy]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

vrrp_script chk_http_port {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight 2

global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 80
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}

track_script {
chk_http_port
}

virtual_ipaddress {
172.16.1.223
}
}
}


3、由于上面配置的keepalived.conf 含有一个脚本check_haproxy.sh -----(此脚本目的是启动keepalived的同时就进行对haproxy进行检测---如果发现haproxy没起来就直接拉动haproxy配置文件一起启动!)
下面贴出脚本的内容
如下创建:

[root@asdasda haproxy]# vim /etc/keepalived/check_haproxy.sh

#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
echo "启动haproxy" &> /dev/null
sleep 3
if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
/etc/init.d/keepalived stop
echo "关闭keepalived" &> /dev/null
fi
Fi

注意: 这个脚本放在keepalived中对应的目录/etc/keepalived/下,方可生效!
Chmod +x  /etc/keepalived/check_haproxy.sh
4、启动keepalived
Service keepalived start

三、加上日志支持(对haproxy的访问日志支持)  

1编辑/etc/syslog.conf在最下边增加  

Vim /etc/syslog.conf   在这文本最后添加以下两行内容:


local3.* /var/log/haproxy.log  

local0.* /var/log/haproxy.log   

2、编辑 /etc/sysconfig/syslog修改:  

Vim  /etc/sysconfig/syslog  修改下面这个内容:

SYSLOGD_OPTIONS="-r -m 0"   

3重启日志服务  

#service syslog restart  

查看haproxy日志可用: tail -f  /var/log/haproxy.log
四、realserver两台配置一样:
1、如下操作
安装普通的apache ----
Yum httpd install -y
Service httpd start
以上两个操作在两台realserver均执行!
2、修改主页
3、在Realserver1172.16.1.195
Echo 195 > /var/www/html/index.html
在创建一个haproxy检测的文本:
Echo 95 > /var/www/html/index.txt

4、在Realserver2172.16.1.155
Echo 155 >  /var/www/html/index.html
在创建一个haproxy检测的文本:
Echo 55 > /var/www/html/index.txt

五、最后测试访问:http://172.16.1.233/index.html
测试效果是:两台realserver的内容交互出现!---

六、查看haproxy的状态网页:
访问: http://172.16.1.223/haproxy-stats
结果图为如下所示:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-288.png

以上操作便完成了整个架构的搭建!





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657379-1-1.html 上篇帖子: LVS+Keepalived实现负载均衡试验笔记 下篇帖子: linux LVS (keepalived+ipvsadm)负载均衡搭建 一
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表