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

[经验分享] Haproxy做LB负载均衡集群的搭建和配置,可以通过web页面监控web服务器的运行状态

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-28 09:43:41 | 显示全部楼层 |阅读模式
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。
实验(一)
实验目的:使用Haproxy做负载均衡集群(七层)
实验环境准备:
客户端  IP地址:1.1.1.1 主机名waiwang

web1   IP地址:1.1.1.10 主机名:localhost   

web2   IP地址:1.1.1.20 主机名:localhost   

配置HAproxy服务器的IP地址:1.1.1.254 主机名:fanlj
实验所用软件包:haproxy-1.4.24.tar.gz
1.查看软件所依赖的软件有pcre pcre-devel是否安装。
wKioL1YEnRSj0E8NAADPCTrNnss156.jpg
2.解压软件包,并且安装 ,由于在解压的软件包中有makefile所以不需要配置和编译,直接安装 即可,TARGET指定内核的版本,USE_PCRE指定依赖的软件为PCRE,PREFIX指定软件安装的目录,创建conf文件夹用来存放配置文件,创建log文件夹用来存放 日志文件,复制源码包中的配置文件到创建的配置文件中。

wKiom1YEnC2hYpI4AAHx5e45Oqo466.jpg
wKioL1YEna2h93WjAADk2eXJFSg529.jpg
wKioL1YEn9HBEI6yAADLhCSAUfs127.jpg
wKioL1YEoX3DHK_yAABofQ57tbc707.jpg
3.修改主配置文件,用来做负载均衡集群。global为全局设置,defaults为默认设置,listen为指定虚拟服务的名称、IP地址和端口号,web-ser为自己定义的名字,后IP地址和80端口为使用那个IP地址(0.0.0.0为使用所有地址)和端口接收连接请求,balance指定分发的方式,roundrobin为轮询的方式,server后跟真正提供web访问的IP地址和端口,前面的关键字可以定义。
wKioL1YEpfeD1_rEAADl5D7hv9U337.jpg
wKioL1YEpgGQfVUpAAH9O0PfEgQ345.jpg
4.启动haproxy服务

wKioL1YEpwHScCSCAAHcj3DsXoU142.jpg
启动服务时出现以上错误,解决的方案,提示21行关键字redispatch前要 加关键字 为option redispatch,修改后再次 启动。
wKioL1YEp7LxpIhgAAAtufCNt5M883.jpg
再次启动服务时出现一下错误,启动配置文件时不能加载/usr/share/haproxy,修改 路径为/usr/local/haproxy,修改后再次启动服务。

wKiom1YEp-qS_e4-AAEfDYPyc_8476.jpg
wKioL1YEqHKQAGEXAAA-xsIu65g349.jpg
5.启动成功后查看进程和端口,停止进程可以用杀进程的方式进行。

wKiom1YEqR_DsLnqAAEKeZEJDqs390.jpg
6.测试客户端,启动web1和web2上的网站服务,并且修改 默认的网页,web1的页面为1.1.1.10,web2的页面为1.1.1.20。

wKioL1YEqsnxDtT-AADJjt8ZoU8255.jpg
wKiom1YEqs-R2lHlAADJjt8ZoU8456.jpg
wKiom1YEqxDQMq07AADK8JO-FZM009.jpg
7.haproxy提供web页面的监控信息,并且可以监控其web页面是否down掉,stats uri /haproxy-admin为设置web页面监控,重新启动服务即可。

wKiom1YEq_uS5_tnAAEY-1VeefQ746.jpg
wKiom1YErJPTcCN3AAC_zix15zI562.jpg
wKiom1YErJuD0SYPAACQVGL6-GY360.jpg
8.由于客户端没有安装桌面所以在haproxy服务上自己访问测试。
wKiom1YErVzQt2KQAAQLdyefoR4051.jpg
9.把web2上的页面down掉后查看是否监控。
wKiom1YErcqCsPp-AAEDMThGieA236.jpg
wKioL1YEreiSQSQEAASSjoHg7f4970.jpg
总结:haproxy负载均衡集群可以通过web页面监控web服务器的运行状态信息。
配置文件参数的解释

global   //全局设置
log 127.0.0.1   local0    //日志输出配置
maxconn 4096     //最大连接数
chroot /usr/local/haproxy
uid 99         //所属运行的用户uid
gid 99                   //所属运行的用户组
daemon                //以后台形式运行
nbproc 2               //启动2个haproxy实例
pidfile /usr/local/haproxy/run/haproxy.pid
defaults   //默认设置
log    global
mode   http ?  //默认采用http模式
option   httplog //日志类别
retries 3 ??//3次连接失败认为服务器不可用
option redispatch //当serverid对应的服务器挂掉后,强制定向到其他健康服务器
stats  uri     /haproxy-admin   //设置监控
contimeout      5000    //连接超时时间
clitimeout      50000     //客户端连接超时时间
srvtimeout      50000    //服务器端连接超时时间
listen  web-ser 0.0.0.0:80   #
#cookie                      指定serverid的编号 自己定义
#check inter  2000    心跳检查的频率 2秒
#rise 2                       连续2次检查到心跳认为服务器可用
#fall 5                        连续5次检查不到心跳认为服务器不可用
实验(二)
实验目的:haproxy做LB负载均衡集群时,让一个客户端的多次访问请求都要haproxy分发给后端的同一台服务器(只适用与web 集群)。

实验环境:同上

1.修改主配置文件,cookie SERVERID insert indirect nocache为插入cookie信息nocache为不缓存。

wKioL1YEuBPStoGIAAF0uUzin34650.jpg
2.重新启动服务
wKioL1YEt-ih2nLbAAC_zix15zI830.jpg
wKiom1YEt_LyLRCXAACQVGL6-GY323.jpg
3.客户端进行测试只有http协议才携带cookie信息。
wKiom1YEuJvzUpVIAAC6daPywKA429.jpg
实验(三)
实验目的:haproxy实现LB负载均衡集群,根据用户访问的文件类型,分发用来的连接请求。
实验环境:

客户端 IP地址:1.1.1.1 主机名waiwang   

web1  IP地址:1.1.1.10 主机名:localhost    提供网站服务.html结尾的网页

web2  IP地址:1.1.1.20 主机名:localhost   提供网站服务.html结尾的网页
web3  IP地址:1.1.1.30主机名:localhost   提供网站服务
.php结尾的网页
web4  IP地址:1.1.1.40主机名:localhost   提供网站服务
.php结尾的网页
配置HAproxy服务器的IP地址:1.1.1.254 主机名:fanlj
实验所用软件包:haproxy-1.4.24.tar.gz
实验要求:
当用户访问http://haproxy-ip    默认访问web1 或者web2的页面
当用户访问http:/haproxy-ip/.php时访问web3和web4的页面
当用户访问http://haproxy-ip/.html时访问web1和web2的页面

1.安装支持php的软件包
wKioL1YE3p3zIiAZAAAwUB7XUwY860.jpg
2.web1和web2的配置同上,配置web3和web4的页面。
wKiom1YE9yLArAGoAAD8bocqViE556.jpg
wKioL1YE9zCCuv80AADzh4FmZWo488.jpg
wKiom1YFAYvQlqEdAADI_8BpXQ0036.jpg
wKioL1YFAirhYEkRAAC0i-QBQLk620.jpg
wKioL1YFAwmyHLWNAAE4_kTrj9k615.jpg
wKiom1YFA-rAXZLJAAE4zrvIAMQ061.jpg
3.修改 haproxy提供LB的负载均衡集群的配置文件,在源码包中examples目录下,frontend 定义服务的策略,backend 提供服务的服务器组 ,bind 0.0.0.0:80为本机的 所有端口监听访问80端口请求,mode http为七层模式,option httplog为使用全局日志记录配置,acl为匹配的策略,use_backend为访问的请求与acl匹配时请求分发给那个服务器组,default_backend人默认访问那个服务器组,backend为真正提供web服务的主机。

wKiom1YFBMei8FZHAACG_WudCfQ548.jpg
wKioL1YFDb-QdKxaAAHTm2ZVSX0993.jpg
wKiom1YFDceBMNJUAAMdxZrbE-k891.jpg
4.启动 haproxy服务
wKioL1YFFK-jV9F5AAN8yScUh10908.jpg
5.客户端测试
wKiom1YFE2vTw7gSAAEVwNqnJeA653.jpg
总结:haproxy负载均衡集群可以通过web页面监控web服务器的运行状态信息,可以根据用户访问的文件类型,分发用来的连接请求

运维网声明 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-119812-1-1.html 上篇帖子: centos下haproxy日志的配置 下篇帖子: rpm包方式安装配置haproxy web服务器 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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