Haproxy+Nginx搭建Web羣集

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瀏覽器

Haproxy+Nginx搭建Web羣集

  • 安裝配置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

Haproxy+Nginx搭建Web羣集

  • 創建自啓動腳本

    # 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+Nginx搭建Web羣集Haproxy+Nginx搭建Web羣集

  • 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羣集
Haproxy+Nginx搭建Web羣集
Haproxy+Nginx搭建Web羣集

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章