溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Haproxy搭建web集群

發(fā)布時間:2020-04-02 02:50:53 來源:網絡 閱讀:220 作者:wx5d2c2cbaaf223 欄目:建站服務器

常見的web集群調度器

目前常見的web集群調度器分為軟件和硬件,軟件通常使用開源的LVS,Haproxy,Nginx,硬件一般使用比較多的是F5,也有很多人使用國內的一些產品,如梭子魚,綠盟等

Haproxy應用分析

LVS在企業(yè)應用中抗負載能力很強,但存在不足

LVS不支持正則處理,不能實現(xiàn)動靜分離
對于大型網站,LVS的實施配置復雜,維護成本相對較高

Haproxy是一款可提供高可用性,負載均衡,及基于TCP和HTTP應用的代理的軟件

特別適用于負載特別大的web站點
運行在當前的硬件上可支持數以萬計的并發(fā)連接連接請求

Haproxy調度算法原理

RR:最簡單常用的,輪詢調度
LC:最小連接數算法,根據后端的節(jié)點連接數大小動態(tài)分配前端請求
SH:來源訪問調度算法,用于有session會話記錄在服務器端,可以基于來源ip,cookie做群集調度

實驗環(huán)境

Haporxy服務器 192.168.13.175
web1服務器 192.168.13.151
web2服務器 192.168.13.176
客戶端測試機 win7

1,在web1,web2服務器上安裝Nginx

[root@web1 ~]# yum install -y \  ##安裝環(huán)境需要組件包
> pcre-devel \  ##開發(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)建掛載點
[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 \   ##進行配置
> --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)建站點網頁內容,web2上為this is accp web
[root@web1 nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  ##便于系統(tǒng)識別
[root@web1 nginx-1.12.2]# nginx -t  ##檢查語法
[root@web1 nginx-1.12.2]# nginx    ##開啟服務
[root@web1 nginx-1.12.2]# systemctl stop firewalld.service   ##關閉防火墻
[root@web1 nginx-1.12.2]# setenforce 0

2,在haproxy服務器上安裝haproxy調度服務

[root@haproxy ~]# yum install -y \  ##安裝環(huán)境組件工具
> pcre-devel \
> bzip2-devel \
> gcc \
> gcc-c++ \
> make
[root@haproxy ~]# systemctl stop firewalld.service   ##關閉防火墻
[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/  ##模板復制到配置目錄下
[root@haproxy haproxy-1.5.19]# cd /etc/haproxy/
[root@haproxy haproxy]# vim haproxy.cfg   ##編輯配置文件
----------刪除所有l(wèi)isten項目,并添加------------------------------------
注釋以下語句
chroot /usr/share/haproxy
redispatch
添加
listen  webcluster 0.0.0.0:80
                option httpchk GET /test.html  ##web網頁
                balance roundrobin  ##輪詢
                server inst1 192.168.13.151:80 check inter 2000 fall 3  ##健康檢查請求三次
                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 ##啟動文件
[root@haproxy haproxy]# chmod +x /etc/init.d/haproxy   ##執(zhí)行權限
[root@haproxy haproxy]# chkconfig --add /etc/init.d/haproxy   ##添加到service
[root@haproxy haproxy]# ln -s /usr/local/sbin/haproxy /usr/sbin/  ##便于系統(tǒng)識別
[root@haproxy haproxy]# service haproxy start   ##開啟服務
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,使用使用測試機測試網頁
使用Haproxy搭建web集群
4,日志定義,修改haproxy配置文件

[root@haproxy haproxy]# vim /etc/haproxy/haproxy.cfg  ##修改配置文件
global
                log /dev/log    local0 info   ##添加兩個級別的日志文件
                log /dev/log    local0 notice
                #log loghost    local0 info
[root@haproxy haproxy]# service haproxy restart  ##重啟服務
[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')  ##根據級別創(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)日志服務
[root@haproxy haproxy]# cd /var/log/  ##此時是沒有haproxy日志
##重新訪問網頁
[root@haproxy haproxy]# cd /var/log/haproxy/
[root@haproxy haproxy]# ls   ##此時就生成了info級別的日志文件
haproxy-info.log
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI