当前位置:首页 > Web开发 > 正文

keepalived+Haproxy搭建高可用Web群集

2024-03-31 Web开发

Haproxy是目前对照风行的一种群集调理工具,同类群集调理工具有很多,如LVS和Nginx。对对照而言,LVS性能最好,但是搭建相对庞大,搭建LVS群集可以参考博文:搭建:LVS+Keepalived高可用Web处事群集环境;Nginx的upstream模块撑持群集成果,但是相对群集节点健康查抄成果不强,性能没有Haproxy好,更多的是应用在企业内网环境中。Nginx群集可以参考博文:centos 7部署Tomcat及其负载均衡配置详解。

上述几个web群集调理器属于软件类型的,还有很多硬件群集调理器,硬件一般使用对照多的是F5,也有很多公司使用国产的一些产品,如梭子鱼、绿盟等。硬件群集调理器有一些对照显而易见的错误谬误,如果说出问题了,还要需要厂家的技术撑持,厂家维护时还需要我们的错误日志,在呈现问题到问题解决这段时间,可能一个月的时间都过去了。若是使用软件型的群集调理器,那么只要我们运维人员技术过硬,发明问题到解决问题,很快的。

关于Haproxy常用的调理算法、配置文件及参数优化可以参考博文:centos 7 之haproxy的配置文件详解及haproxy参数调优

此刻以下面的环境,进行搭建一个keepalived的高可用web群集(关于高可用存储处事器,这里就省略了,将在以后的文章写出如何搭建高可用的存储处事器),环境如下:

技术图片

一、筹备事情:

1、调通网络,防火墙放行相关流量(我这里直接将防火墙封锁了);

2、筹备系统映像,配置本地yum(自行配置)。

3、下载haproxy源码包,可以从我供给的网盘链接下载使用:haproxy下载链接
提取码:54iv 。

4、web网站使用apache、Nginx、Tomcat搭定都可,只要可以访谒就行,这里自行搭建吧,我为了测试便利,,直接使用系统映像自带的httpd处事,web网站搭建可以参考:基于Linux搭建Apache网站处事配置详解;基于centos 7搭建Nginx网站处事器

5、我这里使用的全部是centos 7系统,注意,该环境不是出产环境,若是在出产环境中,必定还有后端存储来存放网页文件,web处事器读取存储处事器上的网页返回给客户端。这样才可保证网页内容的一致性。

二、开始搭建:

1、配置keepalived+haproxy主处事器:

[[email protected] ~]# yum -y install keepalived pcre-devel bzip2-devel #挂载系统映像,安置相关软件包 [[email protected] media]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src/ #解包 [[email protected] media]# cd /usr/src/haproxy-1.5.19/ #切换至源码包目录 [[email protected] haproxy-1.5.19]# make TARGET=linux26 && make install #编译安置,TARGET配置项暗示64位系统。haproxy无须./configure配置。 [[email protected] haproxy-1.5.19]# mkdir /etc/haproxy #创建配置文件目录 [[email protected] haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/ #将源码包自带的配置文件目录复制过来。 [[email protected] haproxy-1.5.19]# cd [[email protected] ~]# vim /etc/haproxy/haproxy.cfg #编纂主配置文件,按照当前环境,将主配置文件改削如下: # this config needs haproxy-1.1.28 or haproxy-1.2.1 global log /dev/log local0 info log /dev/log local0 notice #log loghost local0 info maxconn 4096 #chroot /usr/share/haproxy #将该行注释失 uid 99 gid 99 daemon #debug #quiet defaults log global mode http option httplog option dontlognull retries 3 redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen webcluster 0.0.0.0:80 #webcluster为群集名称,可自界说,改削后面的端标语。 option httpchk /index.html balance roundrobin #暗示给与轮询算法。 server inst1 192.168.1.3:80 check inter 2000 fall 3 #web节点1 server inst2 192.168.1.4:80 check inter 2000 fall 3 #web节点2,注意相关端标语 #注意,在配置文件下,有很多listen配置项,找到和我们需要的差不久不多的listen项复制到 #defaults配置项下,然后将后面所有的配置项删除,若不删除,可能处事启动时会报错。 [[email protected] ~]# cd /usr/src/haproxy-1.5.19/examples/ #切换至指定目录 [[email protected] examples]# cp haproxy.init /etc/init.d/haproxy #复制处事控制脚本 [[email protected] examples]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy #创建软连接 [[email protected] examples]# chmod +x /etc/init.d/haproxy #赋予文件执行权限 [[email protected] examples]# chkconfig --add /etc/init.d/haproxy #添加为系统处事 [[email protected] examples]# systemctl restart haproxy #启动haproxy处事 [[email protected] examples]# netstat -anpt | grep 80 #检察是否在监听 #haproxy处事默认监听80端口 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12640/haproxy [[email protected] ~]# vim /etc/rsyslog.d/haproxy.conf #配置haproxy日志,写入下面内容 if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘info‘) then -/var/log/haproxy/haproxy-info.log & ~ if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘notice‘) then -/var/log/haproxy/haproxy-notice.log & ~ #写入后,生存退出即可。 [[email protected] ~]# systemctl restart rsyslog #重启日志处事 #以下部分隔始配置keepalived,haproxy已经配置完成了。 #此刻client可以访谒该处事器IP地点,看看是否可以刷到两个web处事器供给的网页。 #需要多刷新几次,web处事器筹备不一样的网页才可看到效果。 [[email protected] ~]# vim /etc/keepalived/keepalived.conf #编纂keepalived配置文件 #只窜改以下标注的配置项即可 ! Configuration File for keepalived global_defs { notification_email { } notification_email_from [email protected] smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL1 #界说处事器名称,不成与其他处事器名称斗嘴 } vrrp_instance VI_1 { state MASTER interface ens33 #改削承载漂移IP地点的物理网卡 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100 #指定漂移IP地点 } } #配置项至今生存退出就可以了,将后面的所有配置项删除,以免影响处事启动。 [[email protected] ~]# systemctl restart keepalived #重启keepalived处事。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31597.html