經過博文: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節點服務內容一致(實際環境中確定是這樣作的)!
———————— 本文至此結束,感謝閱讀 ————————