HaProxy提供高可用性、負(fù)載均衡以及基于TCP和HTTP應(yīng)用的代理,支持虛擬主機(jī),它是免費(fèi)、快速并且可靠的一種解決方案。應(yīng)用到Haproxy主要是因?yàn)樗赓M(fèi),并且基于TCP和HTTP的應(yīng)用代理。
先介紹一下Haproxy的應(yīng)用場(chǎng)景,一個(gè)是TCP代理,這邊也是我項(xiàng)目中應(yīng)用的,另一個(gè)是HTTP代理,我就簡(jiǎn)單介紹一下。基于Tcp協(xié)議的Haproxy代理應(yīng)用場(chǎng)景:在VPC網(wǎng)絡(luò)環(huán)境下,虛機(jī)A的數(shù)據(jù)庫(kù)不能被外界網(wǎng)絡(luò)訪問(wèn)到,只能被在同一內(nèi)網(wǎng)環(huán)境下的虛機(jī)B訪問(wèn),這時(shí)候可以通過(guò)在虛機(jī)B上搭建Haproxy環(huán)境,通過(guò)Haproxy代理實(shí)現(xiàn)外部虛機(jī)C對(duì)虛機(jī)A數(shù)據(jù)庫(kù)的訪問(wèn);這里我項(xiàng)目中實(shí)際運(yùn)用到的場(chǎng)景是這樣的,在公有云上創(chuàng)建RDS實(shí)例,會(huì)有VPC網(wǎng)絡(luò)和Classic網(wǎng)絡(luò),在選擇VPC網(wǎng)絡(luò)創(chuàng)建RDS后,在進(jìn)行數(shù)據(jù)同步時(shí),會(huì)對(duì)該RDS數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)同步,這時(shí)候由于RDS的數(shù)據(jù)庫(kù)在VPC網(wǎng)絡(luò)環(huán)境下,外網(wǎng)是不能直接訪問(wèn)這個(gè)RDS數(shù)據(jù)庫(kù)。這時(shí)候我們采用的是用一個(gè)ECS云服務(wù)器上搭建一個(gè)Haproxy代理,公網(wǎng)通過(guò)haproxy代理訪問(wèn)這個(gè)RDS數(shù)據(jù)庫(kù),這樣就解決了VPC網(wǎng)絡(luò)的訪問(wèn)問(wèn)題;
基于HTTP協(xié)議的Haproxy代理應(yīng)用場(chǎng)景:用戶訪問(wèn)網(wǎng)站域名時(shí),通過(guò)我們?cè)O(shè)置的Haproxy代理,HTTP請(qǐng)求到后端配置的web服務(wù)器上,獲得后方服務(wù)器返回的內(nèi)容后重新封裝,響應(yīng)給客戶端;就不啰嗦了,直接來(lái)干貨,應(yīng)用haproxy代理訪問(wèn)后端mysql數(shù)據(jù)庫(kù)(這里不一定是mysql數(shù)據(jù)庫(kù))。
(一)Haproxy下載、安裝:網(wǎng)上的資源都要積分,所以直接在yum上找免費(fèi)資源。
yum install -y haproxy rpm -qi haproxy rpm -ql haproxy
(二)配置haproxy.cfg文件(重點(diǎn))
cd /etc/haproxy
vim haproxy.cfg