使用Haproxy+nginx 搭建負載均衡集羣

案例環境
本案例使用三臺服務器模擬搭建一套Web集羣,以下所示:

使用Haproxy+nginx  搭建負載均衡集羣
實驗步驟以下:javascript

  1. 編輯安裝nginx服務器
    安裝依賴包下載nginx-01服務器
    [root@node-1 ~]# yum -y install gcc pcre-devel zlib-devel
    [root@node-1 ~]# wget https://nginx.org/download/nginx-1.6.3.tar.gz
    [root@node-1 ~]# tar zxvf nginx-1.6.3.tar.gz
    [root@node-1 ~]# cd nginx-1.6.3/
    [root@node-1 nginx-1.6.3]# ./configure --prefix=/usr/local/nginx
    [root@node-1 nginx-1.6.3]# make && make install
    [root@node-1 nginx-1.6.3]# cd /usr/local/nginx/html/
    創建測試頁面
    [root@node-1 html]# echo "192.168.150.129" >> index.html
    啓動nginx
    [root@node-1 html]# /usr/local/nginx/sbin/nginx
    創建防火牆機制
    [root@node-1 html]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    搭建nginx-02服務器
    [root@node2 ~]# yum -y install gcc
    pcre-devel zlib-devel
    [root@node2 ~]# wget https://nginx.org/download/nginx-1.6.3.tar.gz
    [root@node2 ~]# tar zxvf nginx-1.6.3.tar.gz
    [root@node2 ~]# cd nginx-1.6.3/
    [root@node2 nginx-1.6.3]# ./configure --prefix=/usr/local/nginx
    [root@node2 nginx-1.6.3]# make && make install
    [root@node2 nginx-1.6.3]# cd /usr/local/nginx/html/
    創建測試頁面
    [root@node2 html]# echo "192.168.150.133" >> index.html
    啓動nginx
    [root@node2 html]# /usr/local/nginx/sbin/nginx
    創建防火牆機制
    [root@node2 html]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    安裝完成後,在客戶端訪問nginx進行測試,以下圖所示:
    使用Haproxy+nginx  搭建負載均衡集羣
    使用Haproxy+nginx  搭建負載均衡集羣css

  2. 安裝配置haproxy
    [root@node-3 ~]# yum -y install pcre-devel bzip2-devel gcc* -y
    [root@node-3 ~]# wget http://www.haproxy.org/download/1.4/src/haproxy-1.4.27.tar.gz
    [root@node-3 ~]# tar xvzf haproxy-1.4.27.tar.gz
    [root@node-3 ~]# cd haproxy-1.4.27/
    [root@node-3 haproxy-1.4.27]# make TARGET=linux26
    建立配置文件目錄
    [root@node-3 haproxy-1.4.27]# mkdir /etc/haproxy
    將樣本複製到配置文件目錄
    [root@node-3 haproxy-1.4.27]# cp examples/haproxy.cfg /etc/haproxy/
  3. 根據目前集羣設計,將haproxy.cfg配置文件修改以下:

[root@node-3 haproxy-1.4.27]# cat /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2html

chroot      /var/lib/haproxy
pidfile     /var/run/haproxy.pid
maxconn     4000
user        haproxy
group       haproxy
daemon

stats socket /var/lib/haproxy/stats

defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000java

frontend main *:80
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .jsnode

default_backend             app

backend app
balance roundrobin
server app1 192.168.150.129:80 check
server app2 192.168.150.133:80 check
配置文件因版本而已 請不要複製 參數基本同樣linux

  1. 建立自啓動腳本

[root@node-3 haproxy-1.4.27]# cp examples/haproxy.init /etc/init.d/haproxy
[root@node-3 haproxy-1.4.27]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@node-3 haproxy-1.4.27]# chmod +x /etc/init.d/haproxy
[root@node-3 haproxy-1.4.27]#systemctl start haproxynginx

  1. 測試Web集羣
    經過上面的步驟,已經搭建完成Haproxy的Web集羣,下面驗證一下集羣是否正常工做,一個集羣通常具有兩個特性:高性能與高可用
    (1)測試高性能
    在客戶端使用瀏覽器打開http://192.168.150.131,以下圖所示:

使用Haproxy+nginx  搭建負載均衡集羣

使用Haproxy+nginx  搭建負載均衡集羣

(2)測試高可用
如今將nginx1服務停用,在客戶端訪問代理服務器,瀏覽器會顯示nginx2網頁內容,不會影響集羣的使用,知足了集羣的高可用性
使用Haproxy+nginx  搭建負載均衡集羣redis

相關文章
相關標籤/搜索