使用haproxy搭建web群集
一, 拓撲圖:
搭建環境:
一臺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中,查看起來不方便,所以我們在生產環境中可以將日誌單獨存儲到不同的文件中,配置如下
首先修改配置文件,主要改下面的部分
這兩行的作用是將info和notice的日誌分別記錄到不同的文件中
然後修改rsyslog配置,將haproxy相關的配置獨立定義到haproxy.conf,並放到/etc/rsyslog.d下,rsyslog啟動時會自動加載此目錄下所有的配置文件。
加入以下內容
以下內容是將info和notice日誌放到不同的文件中
然後重新啟動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群集