下文給大家?guī)鞬eepalived的工作原理以及haproxy的負(fù)載均衡介紹,希望能夠給大家在實(shí)際運(yùn)用中帶來一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用創(chuàng)新互聯(lián)在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)來做一個(gè)解答。
成都創(chuàng)新互聯(lián)從2013年開始,先為銀海等服務(wù)建站,銀海等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為銀海企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
Keepalived檢測每個(gè)服務(wù)節(jié)點(diǎn)狀態(tài)
當(dāng)服務(wù)器節(jié)點(diǎn)異?;蚬ぷ鞒霈F(xiàn)故障,keepalived將故障節(jié)點(diǎn)從集群從集群系統(tǒng)中踢除
故障節(jié)點(diǎn)恢復(fù)后,自動(dòng)將其加入
使用keepalived軟件配置HA集群
yum -y install httpd keepalived
35行以后是做調(diào)度器的高可用配置
這里的主備是搶占式的
global_defs {
notification_email {
acassen@firewall.com //設(shè)置報(bào)警收件人郵箱
}
notification_email_from link@firewall.com //發(fā)件人郵箱
smtp_server 192.168.200.1 //郵件服務(wù)器地址
smtp_connect_timeout 30 //郵件超時(shí)時(shí)間
router_id LVS_DEVEL //設(shè)置路由ID
#vrrp_strict //這條需要注釋掉,不然下面的VIP就會不通
}
vrrp_instance webha { //webha 集群名稱
state MASTER //描述名,
interface eth0 //與集群內(nèi)服務(wù)主機(jī)之間通信使用網(wǎng)卡
virtual_router_id 51
priority 100 //優(yōu)先級,數(shù)值越高,越優(yōu)先,主的優(yōu)先級高,默認(rèn)100
優(yōu)先級最大255,超過失效
advert_int 1 //集群內(nèi)服務(wù)主機(jī)之間的通信時(shí)間間隔,單位秒
authentication {
auth_type PASS //認(rèn)證類型
auth_pass 1111 //使用密碼
}
virtual_ipaddress { //設(shè)置VIP地址
192.168.200.16
}
}
vim /root/check_80.sh
#!/bin/bash
netstat -ntulp | grep 80
if [ $? -ne 0 ];then
systemctl stop keepaloved.service
if
1.A、B上安裝keepalived軟件,ipvsadm軟件
Yum -y install keepalived ipvsadm
2.修改/etc/keepalived/keepalived.conf
修改優(yōu)先級劃分主備(AB)服務(wù)主機(jī)
修改認(rèn)證的密碼 主備(AB)服務(wù)器的密碼必須一致
修改IPV(virtual_ipaddress)為192.168.4.253
以下配置A、B一致
virtual_server 192.168.4.253 80 { //定義虛擬調(diào)度機(jī)
delay_loop 6
lb_algo rr //調(diào)度算法
lb_kind DR //工作模式,與后臺realserver的工作模式一致
persistence_timeout 50
protocol TCP
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
real_server 192.168.4.52 80 { //后臺提供web服務(wù)的主機(jī)
weight 1
}
}
這個(gè)步驟是將A、B設(shè)為為keepalived主備機(jī),并且加上LVS(ipvsadm),實(shí)現(xiàn)高可用(HA)和
負(fù)載均衡(LB)的綜合應(yīng)用
3.在A、B上啟動(dòng)并設(shè)置開機(jī)自啟(keepalived)
systemctl restart keepalived.service
systemctl enable keepalived.service
4.在客戶機(jī)上進(jìn)行測試,
curl http://192.168.4.253
前提:后臺提供web服務(wù)的機(jī)器必須正常運(yùn)行
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:1 192.168.4.253/32
real_server 192.168.4.52 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
工作模式 1.mode http
2.mode tcp
3.mode htalth
1.http close
每次響應(yīng)請求后立即斷開連接
2.keep-alive
每一連接可以發(fā)起多個(gè)請求,但是多個(gè)請求需要服務(wù)器按順序一個(gè)一個(gè)響應(yīng)不能一次性作出響應(yīng)
3.pipelining
一次連接可以發(fā)起多次請求,這些請求服務(wù)器并行進(jìn)行響應(yīng),同時(shí)處理請求,減少了延遲,但是
對服務(wù)器的要求比較高,
1.裝包 Yum -y install haproxy 2.配置文件及介紹 Vim /etc/haproxy/haproxy.cfg default:為后續(xù)的其他部分設(shè)置默認(rèn)參數(shù),缺省參數(shù)可以被后續(xù)部分覆蓋 frontend:描述接收客戶端偵聽套接紫集 backend:描述轉(zhuǎn)發(fā)連接的服務(wù)器集 listen:把frontend和backend結(jié)合到一起的完整聲明 //這里為/etc/haproxy/haproxy.cfg的配置 default stats uri /admin #以友好的頁面展示LB集群實(shí)際狀況 listen webla 192.168.4.56:80 cookie SERVERID rewrite balance roundrobin server weba 192.168.4.55:80 cookie app1inst1 check inter 2000 rise 2 fall 5 server webb 192.168.4.57:80 cookie app2inst2 check inter 2000 rise 2 fall 5 3.啟動(dòng)服務(wù)及查看狀態(tài) Systemctl restart haproxy Systemctl status haproxy 4.有好頁面的訪問
http://192.168.4.56/admin
看了以上關(guān)于Keepalived的工作原理以及haproxy的負(fù)載均衡介紹,如果大家還有什么地方需要了解的可以在創(chuàng)新互聯(lián)行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,創(chuàng)新互聯(lián)技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗(yàn)了。創(chuàng)新互聯(lián)官網(wǎng)鏈接www.cdcxhl.com