使用haproxy搭建web羣集
- haproxy提供高可用性、負載均衡以及基於TCP和HTTP應用的代理,支持虛擬主機,它是免費、快速並且可靠的一種解決方案。haproxy運行在當前的硬件上,完全可以支持數以萬計的併發連接。並且它的運行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。
結構拓補圖
實驗環境
主機 | 操作系統 | IP地址 | 主要軟件 |
---|---|---|---|
haproxy服務器 | CentOS7.3x86_64 | 192.168.100.101/24 | haproxy-1.5.19.tar.gz |
web服務器1 | CentOS7.3x86_64 | 192.168.100.102/24 | nginx-1.12.0.tar.gz |
web服務器2 | CentOS7.3x86_64 | 192.168.100.103/24 | nginx-1.12.0.tar.gz |
安裝配置web服務器
- 兩臺web服務器的安裝配置過程相同,主要對其設置不同測試首頁來區分兩臺web服務器。
安裝編譯環境包pcre-devel bzip2-devel gcc gcc-c++;
yum install pcre-devdl zlib-devel gcc gcc-c++ make -y
創建nginx用戶 ,解壓nginx壓縮包,並進行編譯安裝;
useradd -M -s /sbin/nologin nginx
mkdir /opt/abc #創建掛載點
mount.cifs //192.168.100.3/rhel7 /opt/abc #將宿主機的相關軟件包掛載
tar zxvf nginx-1.12.0.tar.gz -C /opt #解壓nginx壓縮包
cd /nginx-1.12.0
./configure \
--prefix=/usr/local/nginx \ #安裝目錄
--user=nginx \ #用戶
--group=nginx #屬組make && make install
添加測試首頁(分別在兩臺web服務器中添加測試首頁);
cd /user/local/nginx/hatml
echo "this is web1 test" > test.html #web1服務器測試首頁內容
echo "this is web2 test" > test.html #web2服務器測試首頁內容
建立軟連接,使系統識別nginx命令,啓動nginx;
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #使系統識別nginx命令
nginx #啓動
關閉防火牆和安全功能;
systemctl stop firewalld.service #關閉防火牆
setenforce 0 #關閉安全功能
安裝配置haproxy服務
安裝編譯環境包pcre-devel bzip2-devel gcc gcc-c++ make;
yum install pdre-devel bzip2-devel gcc gcc-c++ make
解壓haproxy壓縮包,並進行編譯安裝;
mkdir /opt/abc #創建掛載點
mount.cifs //192.168.100.3/rhel7 /opt/abc #將宿主機中的相關軟件包掛載
tar zxvf haproxy-1.2.19.tar.gz -C /opt #解壓haproxy服務壓縮包
cd /opt/haproxy-1.5.19
make TARGET=linux26 #64爲系統
make install
建立haproxy的配置文件,並將進行編輯;
mkdir /etc/harpoxy
cp examples/haproxy.cfg /etc/haproxy #將haproxy.cfg文件複製到配置文件
cd /etc/haproxy
vim haproxy.cfg #編輯配置文件
刪除以下語句
chroot /usr/share/haproxy
redispatch
添加
listen webcluster 0.0.0.0:80
option httpchk GET /test.html
balance roundrobin
server inst1 192.168.100.102:80 check inter 2000 fall 3 #節點1服務器
server inst2 192.168.100.103:80 check inter 2000 fall 3 #節點2服務器
將haproxy的啓動腳本複製到/etc/init.d中,建立軟連接便於系統所識別;
cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy #將haproxy的啓動腳本複製到/etc/init.d中
chmod +x haproxy
chkconfig --add /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy #建立軟連接便於系統所識別
關閉防火牆和安全功能;
systemctl stop firewalld.service
setenforce 0
登錄驗證
- haproxy服務器做爲負載均衡服務器,客服機瀏覽器只需訪問haproxy服務器的IP地址時進行刷新,便可訪問到兩臺web服務器的不同此時首頁。