haproxy部署配置
阿新 • • 發佈:2017-11-05
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部署配置