设为首页 收藏本站
查看: 2366|回复: 5

[经验分享] Centos6.0系统keepalived+Haproxy实现httpd简单负载均衡

[复制链接]

尚未签到

发表于 2013-5-30 08:48:36 | 显示全部楼层 |阅读模式
本帖最后由 zhengl 于 2013-5-30 08:49 编辑

本文Centos6.0

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

这里是两台Haproxy负责后台的控制;使用keepalived实现热备;下面就是正题了:

做的图太恶心了,将就下吧 181308844.jpg

角色;    主机名;          ip;

Haproxy1; node1             192.168.244.147

Haproxy2; node2             192.168.244.148

S1(web1); lv1               192.168.244.149

S2(web2); lv2               192.168.244.150

Haproxy的两台服务器提供的Vip:192.168.244.200

1、首先在lv1、lv2上部署httpd

[backcolor=white !important]
[Shell] 纯文本查看 复制代码
1
[iyunv@lv1 ~]# yum install -y httpd
1
[iyunv@lv2 ~]# yum install -y httpd


将这两台的Index.html全部标记;

分别显示lv1、lv2

访问测试是否正常

182931918.jpg

2、分别在node1、node2上部署haproxy、keepalived

[backcolor=white !important]
[Shell] 纯文本查看 复制代码
1
[iyunv@node1 ~]# yum install -y keepalived haproxy
1
[iyunv@node2 ~]# yum install -y keepalived haproxy


接下来配置haproxy

node1:



[Shell] 纯文本查看 复制代码
####################全局配置信息########################
global
    log         127.0.0.1 local0        #[err warning info debug]
    chroot      /var/lib/haproxy        #chroot运行的路径
    pidfile     /var/run/haproxy.pid 
#haproxy的pid存放路径,启动进程的用户必须有权限访问此文件
    maxconn     4000                    #默认最大连接数
    user        haproxy                 #所属运行的用户
    group       haproxy                 #所属运行的用户组
    nbproc      1                       #进程数量(可以设置多个进程提高性能)
    daemon                              #以后台形式运行haproxy
 #####################默认的全局设置######################
 ##这些参数可以被利用配置到frontend,backend,listen组件##
defaults
        mode                    http    #所处理的类别 (#7层 http;4层tcp  )
    log                     global
    option                  httplog     #日志类别http日志格式
    option                  dontlognull #不记录健康检查的日志信息
    option                  httpclose   #每次请求完毕后主动关闭http通道
    option                  forwardfor
#如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip                   
    option                  redispatch  #serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    retries                 3           #3次连接失败就认为服务不可用,也可以通过后面设置
    stats               refresh 20      #统计页面刷新间隔
    timeout connect         10s         #连接超时
    timeout client          5000        #客户端超时
    timeout server          50000       #服务器超时
    maxconn                 3000
    balance     roundrobin              #默认的负载均衡的方式,轮询方式
    stats uri /haproxy-stats            #监控页面的url
listen proxy *:8080
        option httpchk HEAD /index.html #心跳检测的文件
        server server1  192.168.244.149:80 cookie server1 check inter 1500 rise 3 fall 3
#服务器定义,cookie 1表示serverid为web1,check inter 1500是检测心跳频率rise 3是3次正确认为服务器可用
#fall 3是3次失败认为服务器不可用,weight代表权重
        server server2  192.168.244.150:80 cookie server2 check inter 1500 rise 3 fall 3
node2的haproxy配置是一样的,copy过去就可以了

3、在node1、node2上配置keepalived

[Shell] 纯文本查看 复制代码
node1:
! Configuration File for keepalived
global_defs {
   notification_email {
     [email]sysadmin@firewall.loc[/email]
   }
   notification_email_from [email]Alexandre.Cassen@firewall.loc[/email]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_http_port       {
        script  "/etc/keepalived/check_haproxy.sh"
        interval        2       #脚本执行间隔
        weight          -20     #脚本结果导致的优先级变更:20表示优先级+20;-20则表示优先级-20
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
track_script    {
        chk_http_port
        }
    virtual_ipaddress {
        192.168.244.200
    }
}

编辑脚本:



[Shell] 纯文本查看 复制代码
[iyunv@node1 ~]# cat /etc/keepalived/check_haproxy.sh
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
/etc/init.d/haproxy restart
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
node2和上面的一样,只是将priority 改成 90;state 改成 BACKUP;

4、分别启动keepalived和haproxy




[Shell] 纯文本查看 复制代码
[iyunv@node1 ~]# /etc/init.d/haproxy start
正在启动 haproxy:
[iyunv@node1 ~]# /etc/init.d/keepalived start
正在启动 keepalived:                                      [确定]
5、测试

node2:



[Shell] 纯文本查看 复制代码
[iyunv@node2 ~]# tcpdump vrrp

191321612.jpg

说明现在的vip是node1是提供服务

当你在node1上stop掉keepalived后,你会发现

192120305.jpg

node2进行了顶替

现在进行测试web

http://192.168.244.200:8080

192339287.jpg 两个浏览器浏览发现,是不同的机器进行了服务

现在打开http://192.168.244.200:8080/haproxy-stats

193432970.jpg

当你在lv1上将httpd停掉后:

[backcolor=white !important]
[Shell] 纯文本查看 复制代码
[iyunv@lv1 ~]# /etc/init.d/httpd stop
停止 httpd:

[size=1em][backcolor=white !important][size=1em]                                               [确定]



你会发现:

193619861.jpg

haproxy进行了自动剔除,当你恢复后,就自动顶上了;

简单应用就写到这里了~~欢迎大家拍砖,建议~~



运维网声明 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-6208-1-1.html 上篇帖子: 基于keepalived实现haproxy高可用的双主模型配置 下篇帖子: Centos6.3下haproxy+keepalived+apache安装配置笔记

尚未签到

发表于 2013-6-15 20:57:59 | 显示全部楼层
只有假货是真的,别的都是假的!

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

尚未签到

发表于 2013-6-23 15:00:39 | 显示全部楼层
恋爱就是无数个饭局,结婚就是一个饭局。

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

尚未签到

发表于 2013-7-1 15:17:36 | 显示全部楼层
佛曰,色即是空,空即是色!今晚,偶想空一下

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

尚未签到

发表于 2013-9-2 03:22:25 | 显示全部楼层
只有假货是真的,别的都是假的!

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

尚未签到

发表于 2013-12-26 19:46:20 | 显示全部楼层
◆◇ 丶 ╰'〆 爱情执美、砒霜执毒、含笑饮砒霜

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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