日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
CentOS7.2部署Haproxy1.7.2
  1. haproxy:http://www.haproxy.org/

本文涉及haproxy的安裝,并做簡(jiǎn)單配置。

一.環(huán)境準(zhǔn)備

1. 操作系統(tǒng)

centos-7-x86_64-Everything-1511

2. Haproxy版本

截至2017-02-23,haproxy穩(wěn)定版本是1.7.2: http://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz

3. 拓?fù)鋱D

  1. haproxy服務(wù)器采用VMware ESXi虛擬出的1臺(tái)服務(wù)器,前端訪問(wèn)地址10.11.4.152,后端地址192.168.4.152;1
  2. Web1服務(wù)器為采用docker技術(shù)生成的1臺(tái)服務(wù)器,已安裝并啟動(dòng)nginx服務(wù),ip地址192.168.4.171;
  3. Web2同Web1服務(wù)器,ip地址192.168.4.172;
  4. 設(shè)置web1/2測(cè)試頁(yè)面(路徑參考nginx安裝步驟),以方便后續(xù)查看驗(yàn)證結(jié)果。

二.Haproxy安裝

1. 下載

[root@elk-node2 ~]# cd /usr/local/src/
[root@elk-node2 src]# wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz

2. 編譯安裝

#”TARGET”指定編譯對(duì)應(yīng)的os對(duì)應(yīng)的內(nèi)核版本,通過(guò)”uname -r”查詢內(nèi)核版本呢,README文件可查詢對(duì)應(yīng)關(guān)系
[root@elk-node2 src]# tar -zxvf haproxy-1.7.2.tar.gz
[root@elk-node2 src]# cd haproxy-1.7.2
[root@elk-node2 haproxy-1.7.2]# make TARGET=linux2628 PREFIX=/usr/local/haproxy
[root@elk-node2 haproxy-1.7.2]# make install PREFIX=/usr/local/haproxy

三.Haproxy配置

1. 配置用戶

[root@elk-node2 ~]# groupadd haproxy
[root@elk-node2 ~]# useradd -g haproxy haproxy -s /sbin/nologin

2. 配置文件

1)配置文件詳解

#默認(rèn)安裝目錄下沒(méi)有配置文件,只有”doc”,“sbin”,“share”三個(gè)目錄,可手工創(chuàng)建目錄及配置文件;
#haproxy的配置文件主要是以下5部分:global全局配置、defaults默認(rèn)配置、監(jiān)控頁(yè)面配置、frontend配置、backend配置
[root@elk-node2 ~]# mkdir -p /usr/local/haproxy/etc
[root@elk-node2 ~]# cd /usr/local/haproxy/etc/
[root@elk-node2 etc]# vim haproxy.cfg

#全局配置, 用于設(shè)定義全局參數(shù), 屬于進(jìn)程級(jí)的配置, 通常與操作系統(tǒng)配置有關(guān).
global
    #定義全局日志, 配置在本地, 通過(guò)local0 輸出, 默認(rèn)是info級(jí)別,可配置兩條
    log         127.0.0.1 local0 warning
    #定義日志級(jí)別【error warning info debug】
    #log         127.0.0.1 local1 info
    
    #運(yùn)行路徑
    chroot      /usr/local/haproxy
    #PID 文件存放路徑
    pidfile     /var/run/haproxy.pid
    
    #設(shè)置每haproxy進(jìn)程的最大并發(fā)連接數(shù), 其等同于命令行選項(xiàng)“-n”; “ulimit -n”自動(dòng)計(jì)算的結(jié)果參照此參數(shù)設(shè)定.
    maxconn     4096
    
    #運(yùn)行haproxy 用戶, 或者使用關(guān)鍵字uid
    user        haproxy
    #運(yùn)行haproxy 用戶組, 或者使用關(guān)鍵字gid
    group       haproxy
    
    #后臺(tái)運(yùn)行haproxy
    daemon

    #設(shè)置啟動(dòng)的haproxy進(jìn)程數(shù)量, 只能用于守護(hù)進(jìn)程模式的haproxy;
    #默認(rèn)只啟動(dòng)一個(gè)進(jìn)程, 鑒于調(diào)試?yán)щy等多方面的原因, 一般只在單進(jìn)程僅能打開少數(shù)文件描述符的場(chǎng)景中才使用多進(jìn)程模式.
    nbproc      1
    #設(shè)置每進(jìn)程所能夠打開的最大文件描述符數(shù)目, 默認(rèn)情況其會(huì)自動(dòng)進(jìn)行計(jì)算, 因此不推薦修改此選項(xiàng).
    #ulimit-n 819200 
    
    #調(diào)試級(jí)別, 一般只在開啟單進(jìn)程時(shí)調(diào)試, 且生產(chǎn)環(huán)境禁用.
    #debug
    #haproxy啟動(dòng)后不會(huì)顯示任何相關(guān)信息, 這與在命令行啟動(dòng)haproxy時(shí)加上參數(shù)“-q”相同
    #quiet
    
    #定義統(tǒng)計(jì)信息保存位置
    stats socket /usr/local/haproxy/stats

#默認(rèn)配置    
defaults
    #默認(rèn)的模式【tcp:4層; http:7層; health:只返回OK】
    mode        http
    
    #繼承全局的日志定義輸出
    log         global
    
    #日志類別, httplog
    #option      httplog 

    #如果后端服務(wù)器需要記錄客戶端真實(shí)ip, 需要在HTTP請(qǐng)求中添加”X-Forwarded-For”字段;
    #但haproxy自身的健康檢測(cè)機(jī)制訪問(wèn)后端服務(wù)器時(shí), 不應(yīng)將記錄訪問(wèn)日志,可用except來(lái)排除127.0.0.0,即haproxy本身.
    #option      forwardfor except 127.0.0.0/8
    option      forwardfor 

    #開啟http協(xié)議中服務(wù)器端關(guān)閉功能, 每個(gè)請(qǐng)求完畢后主動(dòng)關(guān)閉http通道, 使得支持長(zhǎng)連接,使得會(huì)話可以被重用,使得每一個(gè)日志記錄都會(huì)被記錄.
    option      httpclose 

    #如果產(chǎn)生了一個(gè)空連接,那這個(gè)空連接的日志將不會(huì)記錄.
    option      dontlognull

    #當(dāng)與后端服務(wù)器的會(huì)話失敗(服務(wù)器故障或其他原因)時(shí), 把會(huì)話重新分發(fā)到其他健康的服務(wù)器上; 當(dāng)故障服務(wù)器恢復(fù)時(shí), 會(huì)話又被定向到已恢復(fù)的服務(wù)器上;
    #還可以用”retries”關(guān)鍵字來(lái)設(shè)定在判定會(huì)話失敗時(shí)的嘗試連接的次數(shù)
    option      redispatch
    retries     3
    
    #當(dāng)haproxy負(fù)載很高時(shí), 自動(dòng)結(jié)束掉當(dāng)前隊(duì)列處理比較久的鏈接.
    option      abortonclose

    #默認(rèn)http請(qǐng)求超時(shí)??間
    timeout http-request    10s
    #默認(rèn)隊(duì)列超時(shí)時(shí)間, 后端服務(wù)器在高負(fù)載時(shí), 會(huì)將haproxy發(fā)來(lái)的請(qǐng)求放進(jìn)一個(gè)隊(duì)列中. 
    timeout queue           1m
    #haproxy與后端服務(wù)器連接超時(shí)時(shí)間.
    timeout connect         5s
    #客戶端與haproxy連接后, 數(shù)據(jù)傳輸完畢, 不再有數(shù)據(jù)傳輸, 即非活動(dòng)連接的超時(shí)時(shí)間.
    timeout client          1m
    #haproxy與后端服務(wù)器非活動(dòng)連接的超時(shí)時(shí)間.
    timeout server          1m
    #默認(rèn)新的http請(qǐng)求連接建立的超時(shí)時(shí)間,時(shí)間較短時(shí)可以盡快釋放出資源,節(jié)約資源.
    timeout http-keep-alive 10s
    #心跳檢測(cè)超時(shí)時(shí)間
    timeout check           10s
    
    #最大并發(fā)連接數(shù)
    maxconn                 2000
    
    #設(shè)置默認(rèn)的負(fù)載均衡方式
    #balance source 
    #balnace leastconn

#統(tǒng)計(jì)頁(yè)面配置, frontend和backend的組合體, 監(jiān)控組的名稱可按需自定義
listen admin_status
    #配置監(jiān)控運(yùn)行模式
    mode http
    
    #配置統(tǒng)計(jì)頁(yè)面訪問(wèn)端口
    bind 0.0.0.0:1080
    
    #統(tǒng)計(jì)頁(yè)面默認(rèn)最大連接數(shù)
    maxconn 10
    
    #http日志格式
    option httplog 
    
    #開啟統(tǒng)計(jì)
    stats enable
    
    #隱藏統(tǒng)計(jì)頁(yè)面上的haproxy版本信息
    stats hide-version
    
    #監(jiān)控頁(yè)面自動(dòng)刷新時(shí)間
    stats refresh 30s
    
    #統(tǒng)計(jì)頁(yè)面訪問(wèn)url
    stats uri /stats
    
    #統(tǒng)計(jì)頁(yè)面密碼框提示文本
    stats realm mCloud\ Haproxy
    
    #監(jiān)控頁(yè)面的用戶和密碼:admin, 可設(shè)置多個(gè)用戶名
    stats auth admin:admin
    
    #手工啟動(dòng)/禁用后端服務(wù)器, 可通過(guò)web管理節(jié)點(diǎn)
    stats admin if TRUE

    #設(shè)置haproxy錯(cuò)誤頁(yè)面
    errorfile 400 /usr/local/haproxy/errorfiles/400.http
    errorfile 403 /usr/local/haproxy/errorfiles/403.http
    errorfile 408 /usr/local/haproxy/errorfiles/408.http
    errorfile 500 /usr/local/haproxy/errorfiles/500.http
    errorfile 502 /usr/local/haproxy/errorfiles/502.http
    errorfile 503 /usr/local/haproxy/errorfiles/503.http
    errorfile 504 /usr/local/haproxy/errorfiles/504.http

#監(jiān)控haproxy后端服務(wù)器的監(jiān)控狀態(tài)
listen site_status 
       bind 0.0.0.0:1081                       #監(jiān)聽(tīng)端口
       mode http                               #http的7層模式
       log 127.0.0.1 local2 err                #[err warning info debug] 
       monitor-uri /site_status                #網(wǎng)站健康檢測(cè)URL,用來(lái)檢測(cè)HAProxy管理的網(wǎng)站是否可以用,正常返回200,不正常返回503 
       acl site_dead nbsrv(php_server) lt 1    #定義網(wǎng)站down時(shí)的策略當(dāng)掛在負(fù)載均衡上的指定backend的中有效機(jī)器數(shù)小于1臺(tái)時(shí)返回true 
       acl site_dead nbsrv(html_server) lt 1 
       acl site_dead nbsrv(backend_default)  lt 1  
       monitor fail if site_dead               #當(dāng)滿足策略的時(shí)候返回503,網(wǎng)上文檔說(shuō)的是500,實(shí)際測(cè)試為503 
       monitor-net 192.168.4.171/32            #來(lái)自192.168.4.152的日志信息不會(huì)被記錄和轉(zhuǎn)發(fā)
       monitor-net 192.168.4.172/32
    
#frontend, 名字自定義
frontend HAproxy_Cluster
    #定義前端監(jiān)聽(tīng)端口, 建議采用bind *:80的形式,否則做集群高可用的時(shí)候有問(wèn)題,vip切換到其余機(jī)器就不能訪問(wèn).
    bind 0.0.0.0:80

    #acl后面是規(guī)則名稱,當(dāng)請(qǐng)求的url末尾是以.php結(jié)尾時(shí),匹配觸發(fā)php_web規(guī)則,以下兩種寫法均可.
    acl php_web url_reg /*.php

    #當(dāng)請(qǐng)求的url末尾是以.css、.jpg、.png、.jpeg、.js、.gif結(jié)尾時(shí),匹配并觸發(fā)static_web規(guī)則.
    #acl static_web path_end .gif .png .jpg .css .js .jpeg
    #acl static_web url_reg /*.(css|jpg|png|jpeg|js|gif)$

    #-i為忽略大小寫,當(dāng)被請(qǐng)求的是以www.test.com開頭的主機(jī)時(shí),匹配并觸發(fā)dns_name規(guī)則.
    acl html_web hdr_beg(host) -i www.haproxytest.com
    #acl html_web hdr_beg(host) 10.11.4.152

    #當(dāng)客戶端的IP是x.x.x.x時(shí),匹配并觸發(fā)src_ip規(guī)則.
    #acl src_ip src x.x.x.x

    #如果匹配acl規(guī)則php_web,將請(qǐng)求轉(zhuǎn)交到php_server組處理;如果匹配acl規(guī)則html_web,將請(qǐng)求轉(zhuǎn)交到html_server組處理.
    use_backend php_server if php_web
    use_backend html_server if html_web

    #如果以上規(guī)則都不匹配時(shí),將請(qǐng)求轉(zhuǎn)交到default_backend組處理.
    default_backend backend_default

#backend后端配置, 配置php_server組與html_server組
backend php_server

    #定義負(fù)載均衡方式為roundrobin方式, 即基于權(quán)重進(jìn)行輪詢調(diào)度的算法, 在服務(wù)器性能分布較均勻情況下推薦.
    #另有如下幾種負(fù)載均衡方式:
    #-- static-rr: 也是基于權(quán)重進(jìn)行輪轉(zhuǎn)調(diào)度, 但屬于靜態(tài)方法, 運(yùn)行時(shí)調(diào)整后端機(jī)組權(quán)重不會(huì)使用新的權(quán)重;
    #-- source: 基于請(qǐng)求源IP進(jìn)行hash運(yùn)算匹配后端服務(wù)器組;
    #-- leastconn: 不適合會(huì)話較短的環(huán)境, 如基于http的應(yīng)用;
    #-- uri: 對(duì)整個(gè)URI進(jìn)行hash運(yùn)算;
    #-- uri_param: 對(duì)URI中的參數(shù)進(jìn)行轉(zhuǎn)發(fā);
    #-- hdr():根據(jù)http頭進(jìn)行轉(zhuǎn)發(fā), 無(wú)該頭部則轉(zhuǎn)為使用roundrobin.
    balance roundrobin

    mode http

    #允許插入serverid到cookie中,serverid后面可定義
    cookie SERVERID

    #心跳檢測(cè)方式為檢測(cè)后端服務(wù)器index.html文件,還有其他方式
    option httpchk GET /index.html

    #后端服務(wù)器定義, maxconn 1024表示該服務(wù)器的最大連接數(shù), cookie 1表示serverid為1, weight代表權(quán)重(默認(rèn)1,最大為265,0則表示不參與負(fù)載均衡), 
    #check inter 1500是檢測(cè)心跳頻率, rise 2是2次正確認(rèn)為服務(wù)器可用, fall 3是3次失敗認(rèn)為服務(wù)器不可用.
    server php1 192.168.4.171:80 maxconn 1024 cookie 1 weight 3 check inter 1500 rise 2 fall 3

backend html_server
    balance source
    mode http
    server html1 192.168.4.172:80 maxconn 1024 cookie 1 weight 3 check inter 1500 rise 2 fall 3

backend backend_default
    balance source
    mode http
    server default1 192.168.4.171:80 maxconn 1024 cookie 1 weight 3 check inter 1500 rise 2 fall 3

2)error文件

#配置文件中統(tǒng)計(jì)監(jiān)控頁(yè)面部分定義了error文件,將安裝包中的文件復(fù)制到安裝目錄使用
[root@elk-node2 ~]# cp -r /usr/local/src/haproxy-1.7.2/examples/errorfiles/ /usr/local/haproxy/

文章名稱:CentOS7.2部署Haproxy1.7.2
文章出自:http://m.5511xx.com/article/dpdjdph.html