1. 程式人生 > >haproxy部署配置

haproxy部署配置

useradd roc sys 超時 cal eight 如果 div 模式

環境

c1.heboan.com
192.168.88.1
CentOS Linux release 7.2.1511 (Core) 
	yum install -y gcc gcc-c++

在文件中插入以下兩行,並重啟系統生效

# vim /etc/security/limits.conf
*  soft  nofile  65535
*  hard  nofile  65535

安裝

tar xf haproxy-1.6.3.tar.gz 
cd haproxy-1.6.3
make TARGET=linux2628 PREFIX=/application/haproxy-1.6.3
make install PREFIX=/application/haproxy-1.6.3
cp ~/haproxy-1.6.3/examples/haproxy.init /etc/init.d/haproxy
ls -n  /application/haproxy-1.6.3  /application/haproxy
cd /application/haproxy
mkdir conf logs

配置環境變量

vim /etc/profile.d/haproxy.sh
    export PATH=$PATH:/application/haproxy/sbin
source /etc/profile.d/haproxy.sh 
haproxy -v

創建組和用戶

groupadd haproxy
useradd -g haproxy -r haproxy
chown -R haproxy.haproxy /application/haproxy
chown -R haproxy.haproxy /application/haproxy-1.6.3

配置日誌

# vim /etc/rsyslog.conf 
	$ModLoad imtcp	  去掉這兩行註釋,第19、20行
	$InputTCPServerRun 514
	...	
	local3.*   /application/haproxy/logs/haproxy.log   #第74行增加此行配置
# systemctl restart rsyslog

配置文件

haproxy安裝後是沒有默認配置文件的,需要手動創建。本例將創建/application/haproxy/conf/haproxy.cfg
當啟動haproxy服務時需要使用-f選項指定配置文件路徑
配置文件主要包括全局段與代理段,global代表全局段,defualt、listen、frontend、backend為代理段
fronted: 用來匹配客戶端請求的域名或URI等
backend: 定義後端服務器集群
listen: 是frontend與backend的集合,有時僅使用listen即可替代frontend與backend

**********************
global
    log 127.0.0.1 local3 info        #這的local3指定到我們上面配置的rsyslog,info是日誌級別
    maxconn 40960  		     #支持每個進程的最大並發數
    chroot /application/haproxy      #將目錄切換至/application/haproxy並執行chroot,增強安全性
    user haproxy	             #配置進程的賬戶
    group haproxy                    #配置進程的組
    daemon			     #配置haproxy以守護進程模式運行
    nbproc 1                         #指定後臺進程的數量

defaults			     #默認段,可以被前段和後端繼承的,如果不配置就會繼承默認段
    log global
    mode http                        #haproxy工作模式,可選項為:tcp、http、health
    option httplog                   #使用http日誌
    option dontlognull               #不記錄健康檢查的連接
    option forwardfor                #允許插入X-Forwarded-For數據包頭給後端真實服務器,可以讓後端服務器獲取真實客戶端IP
    option abortonclose              #當服務器負載很高的時候,自動結束掉當前隊列處理比較久的連接
    retries 3                        #重試次數
    maxconn 40960                         
    timeout connect 5000             #設置連接最大超時時間,默認單位為毫秒(ms)
    timeout client 5000              #設置客戶端最大超時時間,默認單位為毫秒(ms)
    timeout server 5000              #設置服務器端最大超時時間,默認單位為毫秒(ms)

frontend http-in                     #定義終端用戶訪問的前端服務器,http-in是自己定義的名字
    bind *:80                        #定義一個或多個監聽地址及端口
    acl heboan hdr_beg(host) -i www.heboan.com   #定ACL控制請求包頭信息通過正則匹配,-i代表不區分大小寫
    acl heboan hdr_beg(host) -i heboan.com
    use_backend www_heboan_com if heboan         #當用戶請求觸發名為heboan的ACL規則時,代理會將請求轉發到heboan_server後端服務組
    #default_backend <後端名>                    #可以定義一個默認的後端

    stats enable                     #開啟harproxy監控頁面
    stats hide-version               #隱藏haproxy版本信息
    stats uri /haproxy-status        #設置監控頁面的URI
    stats auth admin:heboan123       #設置監控頁面的用戶名及密碼
    stats admin if TRUE

backend www_heboan_com               #定義後端服務器組
    balance roundrobin               #輪詢真實服務器
    cookie SESSION_COOKIE insert indirect nocache
    option httpchk GET /index.html
    server web1 192.168.88.2:80 minconn 100 maxconn 1000 cookie web1 weight 6 check inter 2000 rise 2 fall 4
    server web2 192.168.88.3:80 minconn 100 maxconn 1000 cookie web2 weight 6 check inter 2000 rise 2 fall 4
    #健康檢查,健康檢查的時間間隔為2000ms,連續2次健康檢查成功則認為服務器是有效開啟的,連續4次檢查檢查失敗後,認為服務器已經宕機,權重為6

啟動haproxy

haproxy -f /application/haproxy/conf/haproxy.cfg

  

haproxy部署配置