1. 程式人生 > >使用haproxy搭建web群集

使用haproxy搭建web群集

roc ges 防火墻規則 修改配置文件 nbsp 文件的 ups 文件中 graph

前言:我們知道tomcat+nginx負載均衡群集lvs負載均衡群集 haproxy搭建群集,這三種群集相比較來說,lvs性能最好,但是搭建復雜,nginxupstream模塊支持群集,但是對群集的節點的故障檢查功能不多,性能也沒有haproxy好,所以應該說harpoxy也是非常不錯的。所以接下來我們開始使用haproxy搭建群集.

一, 拓撲圖:

技術分享圖片

搭建環境:

一臺haproxy服務器,二臺nginx服務器,搭建兩個不同的網站(方便測試群集),一臺客戶機上網測試。

技術分享圖片

開始搭建:

首先安裝兩個支持包

技術分享圖片

技術分享圖片

技術分享圖片

2)haproxy服務器的配置

首先建立haproxy的配置文件

技術分享圖片


拷貝配置文件的樣本復制到/etc/haproxy目錄下

技術分享圖片

修改haproxy.cfg配置文件

技術分享圖片

技術分享圖片技術分享圖片

3)創建自啟動腳本

技術分享圖片

技術分享圖片

技術分享圖片

4,安裝ngingx並制作網頁。

root@centos3 ~]# yum -y install pcre-devel zlib-devel

[root@centos3 ~]# tar zxf nginx-1.6.2.tar.gz

[root@centos3 ~]# cd nginx-1.6.2

[root@centos3 nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install

[root@centos3 nginx-1.6.2]# useradd -M -s /sbin/nologin nginx

[root@centos3 nginx-1.6.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

[root@centos3 nginx-1.6.2]# echo "node_1" > /usr/local/nginx/html/index.html

啟動nginx服務

[root@centos3 nginx-1.6.2]# nginx

建立防火墻規則

[root@centos3 nginx-1.6.2]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

剩下的節點配置一樣,為了測試時看出效果,建議將測試頁的內容不要保持一致

第一臺:

技術分享圖片

第二臺:

技術分享圖片

5)開啟haproxy服務

技術分享圖片

註意:防火網開啟例外或者關閉

iptables -I INPUT -p tcp --dport 80 -j ACCEPT


6)測試web群集

首先測試負載均衡

在客戶端上打開http://192.168.1.10,瀏覽器顯示第一臺網頁

技術分享圖片

再次打開一個新的瀏覽器訪問,顯示第二臺網頁

技術分享圖片

下面再測試一下高可用,我們把第一臺服務器的網卡斷掉,模擬服務器出現故障,如果網頁依然可以訪問,說明群集的高可用沒有問題。

技術分享圖片

5)配置haproxy日誌

Haproxy的日誌默認是保存到系統的syslog中,查看起來不方便,所以我們在生產環境中可以將日誌單獨存儲到不同的文件中,配置如下

首先修改配置文件,主要改下面的部分

技術分享圖片

這兩行的作用是將infonotice的日誌分別記錄到不同的文件中

然後修改rsyslog配置,將haproxy相關的配置獨立定義到haproxy.conf,並放到/etc/rsyslog.d下,rsyslog啟動時會自動加載此目錄下所有的配置文件。

技術分享圖片

加入以下內容

技術分享圖片

以下內容是將infonotice日誌放到不同的文件中

然後重新啟動rsyslog服務

技術分享圖片

測試日誌信息

在客戶機訪問網站之後,可以使用tail -f /var/log/haproxy/haproxy-info.log即時查看日誌

技術分享圖片

為了實現haproxy的高可用,我們可以配置keepalived

技術分享圖片

上圖中增加了一臺haproxy,用來做備份,在上面安裝keepalived配置好了之後斷掉第一臺haproxy,網站依然可以訪問對了。

註意防火墻開啟224.0.0.18端口,這是keepalived的組播地址。

iptables -I INPUT -p ip -d 224.0.0.18 -j ACCEPT


使用haproxy搭建web群集