目前常見(jiàn)的web集群調(diào)度器分為軟件和硬件,軟件通常使用開(kāi)源的LVS,Haproxy,Nginx,硬件一般使用比較多的是F5,也有很多人使用國(guó)內(nèi)的一些產(chǎn)品,如梭子魚(yú),綠盟等
LVS在企業(yè)應(yīng)用中抗負(fù)載能力很強(qiáng),但存在不足
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)十多年經(jīng)驗(yàn)成就非凡,專(zhuān)業(yè)從事網(wǎng)站建設(shè)、成都網(wǎng)站制作,成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)頁(yè)制作,軟文平臺(tái),一元廣告等。十多年來(lái)已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:13518219792,我們期待您的來(lái)電!LVS不支持正則處理,不能實(shí)現(xiàn)動(dòng)靜分離
對(duì)于大型網(wǎng)站,LVS的實(shí)施配置復(fù)雜,維護(hù)成本相對(duì)較高
Haproxy是一款可提供高可用性,負(fù)載均衡,及基于TCP和HTTP應(yīng)用的代理的軟件
特別適用于負(fù)載特別大的web站點(diǎn)
運(yùn)行在當(dāng)前的硬件上可支持?jǐn)?shù)以萬(wàn)計(jì)的并發(fā)連接連接請(qǐng)求
Haproxy調(diào)度算法原理
RR:最簡(jiǎn)單常用的,輪詢調(diào)度
LC:最小連接數(shù)算法,根據(jù)后端的節(jié)點(diǎn)連接數(shù)大小動(dòng)態(tài)分配前端請(qǐng)求
SH:來(lái)源訪問(wèn)調(diào)度算法,用于有session會(huì)話記錄在服務(wù)器端,可以基于來(lái)源ip,cookie做群集調(diào)度
Haporxy服務(wù)器 192.168.13.175
web1服務(wù)器 192.168.13.151
web2服務(wù)器 192.168.13.176
客戶端測(cè)試機(jī) win7
1,在web1,web2服務(wù)器上安裝Nginx
[root@web1 ~]# yum install -y \ ##安裝環(huán)境需要組件包
> pcre-devel \ ##開(kāi)發(fā)包
> zlib-devel \ ##壓縮包
> gcc \
> gcc-c++ \
> make
[root@web1 ~]# useradd -M -s /sbin/nologin nginx ##創(chuàng)建系統(tǒng)用戶
[root@web1 ~]# mkdir /abc ##創(chuàng)建掛載點(diǎn)
[root@web1 ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/ ##掛載
Password for root@//192.168.100.3/LNMP-C7:
[root@web1 ~]# cd /abc/
[root@web1 abc]# tar zxvf nginx-1.12.2.tar.gz -C /opt ##解壓
[root@web1 abc]# cd /opt/nginx-1.12.2/
[root@web1 nginx-1.12.2]# ./configure \ ##進(jìn)行配置
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx
[root@web1 nginx-1.12.2]# make && make install
[root@web1 nginx-1.12.2]# echo "this is kgv web" > /usr/local/nginx/html/test.html
##創(chuàng)建站點(diǎn)網(wǎng)頁(yè)內(nèi)容,web2上為this is accp web
[root@web1 nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##便于系統(tǒng)識(shí)別
[root@web1 nginx-1.12.2]# nginx -t ##檢查語(yǔ)法
[root@web1 nginx-1.12.2]# nginx ##開(kāi)啟服務(wù)
[root@web1 nginx-1.12.2]# systemctl stop firewalld.service ##關(guān)閉防火墻
[root@web1 nginx-1.12.2]# setenforce 0
2,在haproxy服務(wù)器上安裝haproxy調(diào)度服務(wù)
[root@haproxy ~]# yum install -y \ ##安裝環(huán)境組件工具
> pcre-devel \
> bzip2-devel \
> gcc \
> gcc-c++ \
> make
[root@haproxy ~]# systemctl stop firewalld.service ##關(guān)閉防火墻
[root@haproxy ~]# setenforce 0
[root@haproxy ~]# mkdir /abc
[root@haproxy ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/ ##掛載
[root@haproxy ~]# cd /abc/
[root@haproxy abc]# tar zxvf haproxy-1.5.19.tar.gz -C /opt/ ##解壓
[root@haproxy abc]# cd /opt/haproxy-1.5.19/
[root@haproxy haproxy-1.5.19]# make TARGET=linux26 ##編譯
[root@haproxy haproxy-1.5.19]# make install ##安裝
[root@haproxy haproxy-1.5.19]# mkdir /etc/haproxy ##創(chuàng)建配置文件目錄
[root@haproxy haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/ ##模板復(fù)制到配置目錄下
[root@haproxy haproxy-1.5.19]# cd /etc/haproxy/
[root@haproxy haproxy]# vim haproxy.cfg ##編輯配置文件
----------刪除所有l(wèi)isten項(xiàng)目,并添加------------------------------------
注釋以下語(yǔ)句
chroot /usr/share/haproxy
redispatch
添加
listen webcluster 0.0.0.0:80
option httpchk GET /test.html ##web網(wǎng)頁(yè)
balance roundrobin ##輪詢
server inst1 192.168.13.151:80 check inter 2000 fall 3 ##健康檢查請(qǐng)求三次
server inst2 192.168.13.176:80 check inter 2000 fall 3
[root@haproxy haproxy]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy ##啟動(dòng)文件
[root@haproxy haproxy]# chmod +x /etc/init.d/haproxy ##執(zhí)行權(quán)限
[root@haproxy haproxy]# chkconfig --add /etc/init.d/haproxy ##添加到service
[root@haproxy haproxy]# ln -s /usr/local/sbin/haproxy /usr/sbin/ ##便于系統(tǒng)識(shí)別
[root@haproxy haproxy]# service haproxy start ##開(kāi)啟服務(wù)
Starting haproxy (via systemctl): [ 確定 ]
[root@haproxy haproxy]# netstat -ntap | grep haproxy ##查看端口
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 39884/haproxy
3,使用使用測(cè)試機(jī)測(cè)試網(wǎng)頁(yè)
4,日志定義,修改haproxy配置文件
[root@haproxy haproxy]# vim /etc/haproxy/haproxy.cfg ##修改配置文件
global
log /dev/log local0 info ##添加兩個(gè)級(jí)別的日志文件
log /dev/log local0 notice
#log loghost local0 info
[root@haproxy haproxy]# service haproxy restart ##重啟服務(wù)
[root@haproxy haproxy]# touch /etc/rsyslog.d/haproxy.conf ##創(chuàng)建系統(tǒng)日志haproxy配置文件
[root@haproxy haproxy]# vim /etc/rsyslog.d/haproxy.conf
if ($programname == 'haproxy' and $syslogseverity-text == 'info') ##根據(jù)級(jí)別創(chuàng)建不同的日志文件
then -/var/log/haproxy/haproxy-info.log
&~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log
&~
[root@haproxy haproxy]# systemctl restart rsyslog.service ##重啟系統(tǒng)日志服務(wù)
[root@haproxy haproxy]# cd /var/log/ ##此時(shí)是沒(méi)有haproxy日志
##重新訪問(wèn)網(wǎng)頁(yè)
[root@haproxy haproxy]# cd /var/log/haproxy/
[root@haproxy haproxy]# ls ##此時(shí)就生成了info級(jí)別的日志文件
haproxy-info.log
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。