Haproxy+Nginx搭建Web群集
阿新 • • 發佈:2018-06-23
CI 1.5 var 創建 fig login 18C 刷新 查看 Haproxy 是一種群集調度工具 ,是一款提供高可用性、負載均衡以及基於TCP(第四層)和HTTP(第七層)應用的代理軟件,支持虛擬主機,它是免費、快速並且可靠的一種解決方案。 Haproxy特別適用於那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。Haproxy運行在時下的硬件上,完全可以支持數以萬計的 並發連接。並且它的運行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。
- 本案例中介紹使用Haproxy+Ngin一套Web群集
- 實驗需求
- Haproxy作為調度服務器
- Nginx作為節點服務器
- Windows用來測試
服務器主機 | IP | 安裝軟件 |
---|---|---|
Haproxy服務器 | 192.168.200.102/24 | haproxy-1.5.19.tar.gz |
Nginx服務器1 | 192.168.200.103/24 | nginx-1.12.0.tar.gz |
Nginx服務器2 | 192.168.200.104/24 | nginx-1.12.0.tar.gz |
Windows客戶端 | 192.168.200.101/24 | IE瀏覽器 |
-
安裝配置Nginx服務器
# useradd -M -s /sbin/nologin nginx # mount.cifs //192.168.200.1/gx /gx # yum install -y pcre-devel zlib-devel gcc gcc-c++ make # tar /gx/zxvf nginx-1.12.0.tar.gz -C /opt/ # cd /opt/nginx-1.12.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx # make && make install Nginx服務器1 # echo "this is 7.1" /usr/local/nginx/html/test.html //Nginx1添加測試頁面 Nginx服務器2 # echo "this is 7.2" /usr/local/nginx/html/test.html //Nginx2添加測試頁面 # ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ # nginx //啟動Nginx # systemctl stop firewalld.service //關防火墻 # setenforce 0
-
安裝配置Haproxy服務器
# yum install -y pcre-devel bzip2-devel gcc gcc-c++ make # mount.cifs //192.168.200.1/gx /gx # tar zxvf /gx/haproxy-1.5.19.tar.gz -C /opt/ # cd /opt/haproxy-1.5.19/ # make TARGET=linux26 # make install # mkdir /etc/haproxy # cp examples/haproxy.cfg /etc/haproxy/ # vim /etc/haproxy/haproxy.cfg 刪除以下語句 chroot /usr/share/haproxy //根目錄 redispatch //強制將請求發給已經down的服務器 替換listen開頭的行及後面所有行 listen webcluster 0.0.0.0:80 //定義一個webcluster的應用 option httpchk GET /test.html //檢查服務器的test.html文件 balance roundrobin //負載均衡調度算法使用輪詢算法 server inst1 192.168.200.103:80 check inter 2000 fall 3 //定義在線節點1 server inst2 192.168.200.104:80 check inter 2000 fall 3 //定義在線節點2
-
創建自啟動腳本
# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy # chmod +x /etc/init.d/haproxy # chkconfig --add /etc/init.d/haproxy # ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy # service haproxy start //啟動Haproxy服務
- Windows客戶機測試
- 在瀏覽器輸入 http://192.168.200.102/test.html
- 多刷新幾次可以看到Nginx1、Nginx2的測試頁面 為搭建成功
- Haproxy日誌定義分離
- Haproxy日誌默認輸出到系統syslog中,查看不方便。
-
為了更好的管理日誌,可以將Haproxy的info和notice日誌分別記錄到不同日誌文件
.1:在global下面兩行日誌文件配置 重新定義分離 # vim /etc/haproxy/haproxy.cfg global log /dev/log local0 info log /dev/log local0 notice # service haproxy restart //修改了配置文件需要重啟服務 2:修改rsyslog配置 # touch /etc/rsyslog.d/haproxy.conf # 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 &~ # systemctl restart rsyslog.service //重啟 rsyslog服務 3:查看日誌 # cd /var/log/haproxy/ # cat haproxy-info.log
Haproxy+Nginx搭建Web群集