使用 haproxy 進行 TCP 負載均衡

weixin_33751566發表於2016-12-21

Ubutun 安裝

#ubuntu 14.04LTS 
add-apt-repository ppa:vbernat/haproxy-1.7
apt-get update
apt-get dist-upgrade
apt-get install haproxy

mac 安裝

brew install haproxy
#執行 `haproxy -f  /usr/local/Cellar/haproxy/1.6.6/haproxy.cfg  -d`

配置檔案

global
    log 127.0.0.1 local0 notice
    maxconn 2000
    user haproxy
    group haproxy

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    retries 3
    option redispatch
    timeout connect  5000
    timeout client  10000

frontend localnodes
    bind *:4000
    mode tcp
    default_backend nodes
    timeout client          1m

backend nodes
    mode tcp
    balance leastconn
    server web01 127.0.0.1:4001 check
    server web02 127.0.0.1:4002 check
    timeout connect        10s
    timeout server          1m
  • check 表示 haproxy 會對後臺的 server 做健康檢查,一旦發現離線就不往這個節點發資訊了
  • balance leastconn 表示負載策略是 最小連線數
  • 參考 How To Use HAProxy to Set Up HTTP Load Balancing on an Ubuntu VPS
  • maxconn 的預設值是2000
  • timeout client  10000 指的是如果 10000ms 以內沒有進行通訊,tcp 連線將重置

相關文章