1. 程式人生 > >CentOS7 上部署Haproxy及Nginx 搭建Web群集

CentOS7 上部署Haproxy及Nginx 搭建Web群集

images 防火 .com 系統 then tar dont -i con

HAProxy是一個使用C語言編寫的自由及開放源代碼軟件,其提供高可用性、負載均衡,以及基於TCP和HTTP的應用程序代理,可以運行於大部分主流的Linux操作系統上。
本次實驗使用三臺服務器搭建Web群集,Haproxy作為調度服務器,兩臺Nginx服務器作為節點服務器。

實驗環境

主機 | 系統 | IP地址 | 只要軟件

主機 系統 IP地址 主要軟件
haproxy服務器 CentOS-7-x86_64 192.168.100.101 haproxy
Nginx 服務器 CentOS-7-x86_64 192.168.100.102 nginx
Nginx服務器 CentOS-7-x86_64 192.168.100.103 nginx
客戶端 Windows 192.168.100.100 IE瀏覽器

安裝nginxf服務器

  • 安裝便編譯環境
    yum -y install pcre-devel zlib-devel gcc gcc-c++ make  -y
    useradd -M -s /sbin/nologin nginx //為其創建管理用戶
    tar zxvf nginx-1.12.0.tar.gz -C /opt/ //解壓
    ./configure --prefix=/usr/local/nginx \  //安裝路徑
    --user=nginx \               //指定管理用戶
    --group=nginx  //為其編譯    //指定管理組
    make && make install //安裝 
    cd /usr/local/nginx/html/ //存放首頁路徑
    vim index.html //修改它也行從新生成一個也可也
    echo "this is nginx 1!!" > tast.html //但訪問的是後面要加tast如 http://127.0.0.1/tast
    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  //創建軟連接,方便管理
    nginx -t                                            //檢查配置文件是否正確  
    nginx                                           
    //啟動服務
    netstat -ntap | grep 80                             //查看服務是否正確開啟
    關閉防火墻
    systemctl disable firewalld.service 
    systemctl stop firewalld.service
    setenforce 0

    自測 兩臺同要的同樣的配置
    技術分享圖片技術分享圖片

    
    調度服務器配置
  • 安裝haproxy軟件 編譯環境
    yum -y install pcre-devel bzip2-devel gcc gcc-c++ make 
    tar zxf haproxy-1.5.19.tar.gz
    cd haproxy-1.5.19/
    make TARGET=linux26     //安裝64位系統
    make install 

    配置haproxy服務器

    mkdir /etc/haproxy
    cp haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy/haproxy.cfg 
    cd /etc/haproxy/
    vim haproxy.cfg  //修改其配置文件
    global
        log 127.0.0.1   local0    // 日誌格式 和系統日誌保存在一起
        log 127.0.0.1   local1 notice //notice 日誌級別
        #log loghost    local0 info
        maxconn 4096   //最大鏈接數
        chroot /usr/share/haproxy  //刪除
        uid 99
        gid 99
        daemon
        #debug
        #quiet
    defaults
        log     global  
        mode    http
        option  httplog  //寫的日誌文件格式安裝httpd 的格式寫
        option  dontlognull  
        retries 3   //嘗試次數 3次 如果鏈接不上就認為不可用
        redispatch   //刪除 
        maxconn 2000
        contimeout      5000   //最大鏈接
        clitimeout      50000
        srvtimeout      50000   //超時
    將listen部分修改為以下內容
    listen  webcluster 0.0.0.0:80    //指定節點服務 
        option httpchk GET /test.html  //GET 提交方式 訪問時候後面加test.html
        balance roundrobin
        server inst1 192.168.100.102:80 check inter 2000 fall 3  
        server inst2 192.168.100.103:80 check inter 2000 fall 3
    cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy //啟動腳本
    service haproxy start //啟動服務
    然後就可以訪問  多次涮新,nginx1和nginx2網頁輪換顯示。

    haproxy的日誌優化

  • Haproxy的日誌默認輸出到系統的syslog中。查看起來不是很方便,為了更好的管理haproxy的日誌,我們需要將日誌單獨定義出來
    
    vim /etc/haproxy/haproxy.cfg 
    log /dev/log    local0 info     //信息提示個告警分離開
    log /dev/log    local0 notice  // 刪除原有的 替換
    service haproxy restart

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
技術分享圖片
技術分享圖片

CentOS7 上部署Haproxy及Nginx 搭建Web群集