溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Haproxy搭建Web群集——實(shí)戰(zhàn)篇

發(fā)布時(shí)間:2020-05-28 06:40:11 來源:網(wǎng)絡(luò) 閱讀:286 作者:qq5d47f509174fe 欄目:系統(tǒng)運(yùn)維

實(shí)驗(yàn)要求:

1.一臺(tái) Haproxy調(diào)度服務(wù)器,兩臺(tái) Nginx 服務(wù)器,一臺(tái)windows7作為客戶端;

2.三臺(tái)服務(wù)器為CentOS 7.3的64位系統(tǒng);

3.所有主機(jī)網(wǎng)卡都設(shè)置成僅主機(jī)模式,綁定靜態(tài)地址;

4.客戶端可以通過訪問調(diào)度服務(wù)器,訪問到兩臺(tái)節(jié)點(diǎn)服務(wù)器,不需要訪問真實(shí)服務(wù)器地址

主機(jī) 角色 IP地址
centos7-1 Haproxy服務(wù)器 192.168.1.10
centos7-2 Nginx服務(wù)器1 192.168.1.20
centos7-3 Nginx服務(wù)器2 192.168.1.30
win 7 windows7客戶端 192.168.1.40

實(shí)驗(yàn)步驟:

1、搭建兩臺(tái)Nginx服務(wù)器

安裝環(huán)境包及nginx

[root@nginx1 mnt]# yum -y install \
gcc \
gcc-c++ \
zlib-devel \
pcre pcre-devel \
expat-devel 
[root@nginx1 mnt]# useradd -M -s /sbin/nologin nginx           #建立管理用戶
[root@nginx1 mnt]# tar zxvf nginx-1.12.0.tar.gz -C /opt/
[root@nginx1 nginx-1.12.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx
[root@nginx1 nginx-1.12.0]# make && make install            #編譯安裝
[root@nginx1 nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx1 nginx-1.12.0]# vim /usr/local/nginx/html/test.html            #編寫首頁(yè)
<h2>ACCP web!!!!!!!!!!!!!!!!!</h2>

編寫啟動(dòng)腳本

[root@nginx1 nginx-1.12.0]# vim /etc/init.d/nginx            #方便service調(diào)取

#!/bin/bash
wenjian="/usr/local/nginx/sbin/nginx"
pid="/usr/local/nginx/logs/nginx.pid"
case $1 in
start)
    $wenjian ;;
stop)
    kill -s QUIT $(cat $pid) ;;
restart)
    $0 stop
    $0 start
;;
reload)
    kill -s HUP $(cat $pid) ;;
*)
    echo "Please,try again"
    exit 1 ;;
esac
exit 0

[root@nginx1 nginx-1.12.0]# chmod +x /etc/init.d/nginx 

#開服務(wù)
[root@nginx1 nginx-1.12.0]# service nginx start
[root@nginx1 nginx-1.12.0]# systemctl stop firewalld.service 
[root@nginx1 nginx-1.12.0]# setenforce 0

#改靜態(tài)
[root@nginx1 nginx-1.12.0]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@nginx1 nginx-1.12.0]# systemctl restart nework

2、搭建Haproxy調(diào)度服務(wù)器

安裝環(huán)境包及haproxy

#改靜態(tài)
[root@nginx1 nginx-1.12.0]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@nginx1 nginx-1.12.0]# systemctl restart nework
##安裝環(huán)境包
[root@haproxy mnt]# yum -y install gcc gcc-c++ bzip2-devel pcre pcre-devel

#安裝haproxy
[root@nginx1 ~]# mount.cifs //192.168.10.71/rpm /mnt/
[root@localhost mnt]# tar zxvf haproxy-1.5.19.tar.gz -C /opt/
[root@localhost mnt]# cd /opt/haproxy-1.5.19/

#源碼編譯、安裝
[root@localhost haproxy-1.5.19]# make TARGET=linux26     ##編版本為L(zhǎng)inux內(nèi)核版本(使用uname -a查看)
[root@localhost haproxy-1.5.19]# make install

修改配置文件

root@localhost haproxy-1.5.19]# mkdir /etc/haproxy         #創(chuàng)建配置文件站點(diǎn)
[root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/       #復(fù)制模板
[root@localhost haproxy-1.5.19]# vim /etc/haproxy/haproxy.cfg     #修改配置文件
chroot /usr/share/haproxy            #(默認(rèn)家目錄)刪除該行,文件實(shí)際并不存在
redispatch      #將請(qǐng)求發(fā)給故障節(jié)點(diǎn)(沒啥用關(guān)掉)
-------------------------listen段全部刪除-------------------------------------------------------
##添加
listen webcluster 0.0.0.0:80
        option httpchk GET /test.html            # 開啟對(duì)后端服務(wù)器的健康檢測(cè)(這里是提交test測(cè)試頁(yè)面)
#POST   使用加密方式提交參數(shù);GET   使用明文方式直接提交參數(shù),參數(shù)顯示在url上
        balance roundrobin            #負(fù)載均衡采用輪詢算法
        server inst1 192.168.1.20:80 check inter 2000 fall 3      #定義在線節(jié)點(diǎn)1  
        server inst2 192.168.1.30:80 check inter 2000 fall 3      #定義在線節(jié)點(diǎn)2

定義啟動(dòng)腳本

#定義啟動(dòng)腳本
[root@localhost haproxy-1.5.19]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy 
[root@localhost haproxy-1.5.19]# chkconfig --add /etc/init.d/haproxy      ##添加進(jìn)啟動(dòng)列表
[root@localhost haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/
#啟服務(wù)
[root@localhost haproxy-1.5.19]# service haproxy start
[root@localhost haproxy-1.5.19]# systemctl stop firewalld.service 
[root@localhost haproxy-1.5.19]# setenforce 0

實(shí)驗(yàn)結(jié)果

使用客戶端訪問Haproxy服務(wù)器,調(diào)度服務(wù)器將對(duì)后端web服務(wù)器進(jìn)行調(diào)度訪問
Haproxy搭建Web群集——實(shí)戰(zhàn)篇

Haproxy搭建Web群集——實(shí)戰(zhàn)篇

此時(shí),Haproxy服務(wù)器會(huì)將訪問日志寫進(jìn)系統(tǒng)日志中,這對(duì)維護(hù)人員非常不友好。因此,我們需要單獨(dú)對(duì)haproxy的日志進(jìn)行分割。

配置haproxy配置文件

位置:/etc/rsyslog.d/haproxy.conf

#重啟haproxy 服務(wù)
[root@haproxy etc]# service haproxy restart 
Restarting haproxy (via systemctl):                        [  確定  ]

#創(chuàng)建
[root@haproxy haproxy-1.5.19]# touch /etc/rsyslog.d/haproxy.conf
[root@haproxy haproxy-1.5.19]# vim /etc/rsyslog.d/haproxy.conf

#定義haproxy信息日志
if ($programname == 'haproxy' and $syslogseverity-text == 'info')
then -/var/log/haproxy/haproxy-info.log
&~

#定義haproxy通知日志
if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log
&~

#重啟日志服務(wù)
[root@haproxy etc]# systemctl restart rsyslog.service

#切換到日志目錄下查看haproxy日志文件
[root@haproxy etc]# cd /var/log/haproxy/
[root@haproxy haproxy]# ls
haproxy-info.log

#查看日志文件
[root@haproxy haproxy]# cat haproxy-info.log
Nov 30 16: 53: 30 Haproxy haproxy[119165]: 192.168.100.50: 49191 [30/Nov/2019:16:53: 30.100
webcluster. webcluster/inst2 168/0/1/0/169 200 252 - - --- 1/1/0/1/0 0/0 "GET/test.html HTTP/1.1"
Nov 30 16: 53:42 Haproxy haproxy[119165]: 192.168.100.50: 49191[ 30/Nov/2019:16:53:42.290 :
webcluster. webcluster/inst1 159/0/0/0/159 200 253 - - ---- 1/1/0/1/0 0/0 "GET /test.html HTTP/1.1 "
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI