1. 程式人生 > >Haproxy構建Web群集

Haproxy構建Web群集

proxy water tpch redis nologin AD 軟件 圖片 window

拓撲架構圖

技術分享圖片

系統環境:

主機 操作系統 IP地址 軟件包
負載調度服務器: CentOS 7.0 x86_64 192.168.100.25 haproxy-1.5.19.tar.gz
web1節點服務器: CentOS 7.0 x86_64 192.168.100.26 nginx-1.12.0.tar.gz
web2節點服務器: CentOS 7.0 x86_64 192.168.100.27 nginx-1.12.0.tar.gz
Win 7 客戶端: Windows 7 192.168.100.30

開始部署

一、web1節點服務器

1.安裝環境包

yum install -y pcre-devel zlib-devel gcc gcc-c++ make 

2.新建管理用戶nginx

useradd -M -s /sbin/nologin nginx

3.加壓縮nginx軟件包

tar zxvf nginx-1.12.0.tar.gz -C /opt/

4.切換到nginx目錄

cd /opt/nginx-1.12.0/

5.配置

./configure \
--prefix=/usr/local/nginx \ #安裝目錄
--user=nginx \ #用戶
--group=nginx #用戶組

6.編譯及安裝

make && make install

7.創建web站點首頁 index.html

echo "<h1>this is nginx2 web</h1>" > /usr/local/nginx/html/index.html

8.建立軟鏈接,便於管理nginx

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

9.檢查nginx配置

nginx -t

技術分享圖片

10.啟動服務

nginx

關閉防火墻及selinux

systemctl stop firewalld.service 
setenforce 0

測試

技術分享圖片

二、web2節點服務器

1.安裝環境包

yum install -y pcre-devel zlib-devel gcc gcc-c++ make 

2.新建用戶nginx

useradd -M -s /sbin/nologin nginx

3.加壓縮nginx軟件包

tar zxvf nginx-1.12.0.tar.gz -C /opt/

4.切換到nginx目錄

cd /opt/nginx-1.12.0/

5.配置

./configure \
--prefix=/usr/local/nginx \ #安裝目錄
--user=nginx \ #用戶
--group=nginx #用戶組

6.編譯及安裝

make && make install

7.創建web站點首頁 index.html

echo "<h1>this is nginx1 web</h1>" > /usr/local/nginx/html/index.html

8.建立軟鏈接,便於管理nginx

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

9.檢查nginx配置

nginx -t

技術分享圖片

10.啟動服務

nginx

關閉防火墻及selinux

systemctl stop firewalld.service 
setenforce 0

測試

技術分享圖片

三、haproxy服務器

1.安裝環境包

yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

2.解壓haproxy

tar zxvf /linux-tools/haproxy-1.5.19.tar.gz -C /opt/

3.切換到haproxy目錄

cd /opt/haproxy-1.5.19/

4.編譯及安裝

make TARGET=linux26
make install

5.創建haproxy配置文件目錄

mkdir /etc/haproxy

6.復制模板配置文件至haproxy目錄下

cp examples/haproxy.cfg /etc/haproxy/     

7.編輯haproxy。cfg配置文件

vim /etc/haproxy/haproxy.cfg

#1.刪除以下2行語句
chroot /usr/share/haproxy
redispatch

#2.刪除所有listen項目
#3.新添加以下數據
listen webcluster 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server inst1 192.168.100.26:80 check inter 2000 fall 3
server inst2 192.168.100.27:80 check inter 2000 fall 3

8.創建啟動腳本haproxy

cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy

9.為haproxy賦可執行權限

chmod +x /etc/init.d/haproxy

10.加入系統服務

chkconfig --add /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

11.啟動haproxy

service haproxy start

12.關閉防火墻及selinux

systemctl stop firewalld.service 
setenforce 0

13.測試:

win7客戶端:http://192.168.100.25/
技術分享圖片

技術分享圖片

四、添加日誌功能

說明:haproxy默認是不會直接輸出文件日誌,所以我們要借助Linux的rsyslog來讓haproxy輸出日誌

1.編輯haproxy.cfg

vim /etc/haproxy/haproxy.cfg

#將信息提示與告警進行分離
log /dev/log local0 info
log /dev/log local0 notice

2.重啟haproxy

service haproxy restart

3.新建配置格式

vim /etc/rsyslog.d/haproxy.conf

if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘info‘)
then -/var/log/haproxy/haproxy-info.log
&~
if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘notice‘)
then -/var/log/haproxy/haproxy-notice.log
&~

4.重啟系統日誌服務

systemctl restart rsyslog.service

5.客戶機進行訪問後,到調度服務器的日誌目錄下查看記錄

cat /var/log/haproxy/haproxy-info.log

至此,Haproxy搭建Web群集已經完成了。

Haproxy構建Web群集