经过博文:Haproxy服务调优及配置内容详解
已经能够了解Haproxy服务的做用;
经过博文:利用Keepalived实现双机热备详解
已经能够了解到Keepalived服务的做用;html
Haproxy服务是搭建群集调度的一种工具,性能好。可是现实环境中确定须要和Keepalived服务一块儿使用,避免形成单点故障。linux
这篇博文其实跟博文:搭建LVS(DR模式)+Keepalived高可用群集,可跟作!!!
差很少,只是把负责搭建群集环境的LVS换成了Haproxy。其实也没什么好写的,本意是不想写的。可是其中有几个知识点,必需要了解,不然这个环境不可能实现。redis
案例实施大体步骤:
1.为了简单起见,每一个服务器(无论是Web节点和是调度服务器),实际环境中,应该开启防火墙相关流量;
2.主调度服务器上安装Keepalived和Haproxy服务;
3.配置Web节点服务器,安装Web服务(APache、Nginx均可以)建立虚拟IP地址,全部配置都同样可是建议主页不要同样,这样能看出效果,实际环境中网站主页内容必须同样,能够搭建NFS服务器等来同步网页内容;
4.客户机测试访问主Haproxy服务器地址(可否访问到Web页面);
5.从调度服务器安装Keepalived和Haproxy服务;
6.客户机访问漂移IP地址(可否访问成功);vim
关于服务具体较少及软件包获取方式,能够参考博文:利用Keepalived实现双机热备详解 和
Haproxy服务调优及配置内容详解服务器
具体步骤:app
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 //关闭防火墙与SELinux [root@localhost ~]# yum -y install keepalived pcre-devel bzip2-devel //安装相应的服务及工具 [root@localhost ~]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/haproxy-1.5.19/ [root@localhost haproxy-1.5.19]# make TARGET=linux26 [root@localhost haproxy-1.5.19]# make install //安装Haproxy服务 [root@localhost ~]# mkdir /etc/haproxy [root@localhost ~]# cp /usr/src/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy/ [root@localhost ~]# vim /etc/haproxy/haproxy.cfg //编写Haproxy服务的配置文件 global log 127.0.0.1 local0 log 127.0.0.1 local1 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 appli1-rewrite 0.0.0.0:80 option httpchk GET /index.html balance roundrobin server app1_1 192.168.1.3:80 check inter 2000 rise 2 fall 5 server app1_2 192.168.1.4:80 check inter 2000 rise 2 fall 5 [root@localhost ~]# cp /usr/src/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy [root@localhost ~]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy [root@localhost ~]# chmod +x /etc/init.d/haproxy [root@localhost ~]# chkconfig --add /etc/init.d/haproxy [root@localhost ~]# /etc/init.d/haproxy start Starting haproxy (via systemctl): [ 肯定 ] //编写服务启动脚本并启动服务 [root@localhost ~]# vim /etc/keepalived/keepalived.conf //编写Keepalived服务的配置文件 global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL1 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.254 } } //配置文件只留这些,剩下的建议注释或删除 [root@localhost ~]# systemctl start keepalived //启动Keepalived服务
两台Web节点服务器,配置几乎同样,只有网页内容不同,这里就拿一个为例:ide
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 [root@localhost ~]# yum -y install httpd [root@localhost ~]# echo aaa > /var/www/html/index.html [root@localhost ~]# systemctl start httpd //安装并启动http服务
两台Web节点服务器都已配置完毕能够经过主调度器的IP地址进行访问!工具
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0 [root@localhost network-scripts]# vim ifcfg-lo:0 DEVICE=lo:0 IPADDR=192.168.1.254 NETMASK=255.255.255.255 ONBOOT=yes NAME=loopback:0 [root@localhost network-scripts]# ifup lo [root@localhost network-scripts]# ifconfig lo:0 lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 192.168.1.254 netmask 255.255.255.255 loop txqueuelen 1 (Local Loopback) //配置虚拟IP地址 [root@localhost ~]# route add -host 192.168.1.254 dev lo:0 //添加本机路由 [root@localhost ~]# vim /etc/sysctl.conf net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 [root@localhost ~]# sysctl -p net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 //修改内核参数
两台Web节点配置到这里,就可使用漂移IP地址进行访问!虽然是使用漂移IP进行访问,可是当主调度器宕机,客户端也就不能访问Web节点服务器了。因此须要搭建从调度器(越多越好)!oop
从调度服务器配置几乎和主调度器配置同样,可是Keepalived服务中的路由器ID、优先级、热备状态不同,剩下的就是如出一辙!因此这里就不介绍了!相信你们看完前几篇博文,都不用看博文就能够作出来的。性能
主、从调度器配置完毕后,能够测试主调度器宕机,还能不能访问!(本人测试没问题)你们自行测试!
使用Haproxy服务搭建的群集环境,能够很清除的看出群集轮询的状态!
这样就能够很好的避免单点故障带来的损失!
实际环境中,确定要搭建NFS共享存储来同步网站主页内容,NFS共享存储很基础的服务,这里就不介绍了!
建议搭建NFS共享存储,来保证Web节点服务内容一致(实际环境中确定是这样作的)!
———————— 本文至此结束,感谢阅读 ————————