默认配置文件
$ cat /etc/haproxy/haproxy.cfg # this config needs haproxy-1.1.28 or haproxy-1.2.1 global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 #chroot /usr/share/haproxy user haproxy group haproxy daemon #debug #quiet defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen appli1-rewrite 0.0.0.0:10001 cookie SERVERID rewrite balance roundrobin server app1_1 192.168.34.23:8080 cookie app1inst1 check inter 2000 rise 2 fall 5 server app1_2 192.168.34.32:8080 cookie app1inst2 check inter 2000 rise 2 fall 5 server app1_3 192.168.34.27:8080 cookie app1inst3 check inter 2000 rise 2 fall 5 server app1_4 192.168.34.42:8080 cookie app1inst4 check inter 2000 rise 2 fall 5 listen appli2-insert 0.0.0.0:10002 option httpchk balance roundrobin cookie SERVERID insert indirect nocache server inst1 192.168.114.56:80 cookie server01 check inter 2000 fall 3 server inst2 192.168.114.56:81 cookie server02 check inter 2000 fall 3 capture cookie vgnvisitor= len 32 option httpclose # disable keep-alive rspidel ^Set-cookie:\ IP= # do not let this cookie tell our internal IP address listen appli3-relais 0.0.0.0:10003 dispatch 192.168.135.17:80 listen appli4-backup 0.0.0.0:10004 option httpchk /index.html option persist balance roundrobin server inst1 192.168.114.56:80 check inter 2000 fall 3 server inst2 192.168.114.56:81 check inter 2000 fall 3 backup listen ssl-relay 0.0.0.0:8443 option ssl-hello-chk balance source server inst1 192.168.110.56:443 check inter 2000 fall 3 server inst2 192.168.110.57:443 check inter 2000 fall 3 server back1 192.168.120.58:443 backup listen appli5-backup 0.0.0.0:10005 option httpchk * balance roundrobin cookie SERVERID insert indirect nocache server inst1 192.168.114.56:80 cookie server01 check inter 2000 fall 3 server inst2 192.168.114.56:81 cookie server02 check inter 2000 fall 3 server inst3 192.168.114.57:80 backup check inter 2000 fall 3 capture cookie ASPSESSION len 32 srvtimeout 20000 option httpclose # disable keep-alive option checkcache # block response if set-cookie & cacheable rspidel ^Set-cookie:\ IP= # do not let this cookie tell our internal IP address #errorloc 502 http://192.168.114.58/error502.html #errorfile 503 /etc/haproxy/errors/503.http errorfile 400 /etc/haproxy/errors/400.http errorfile 403 /etc/haproxy/errors/403.http errorfile 408 /etc/haproxy/errors/408.http errorfile 500 /etc/haproxy/errors/500.http errorfile 502 /etc/haproxy/errors/502.http errorfile 503 /etc/haproxy/errors/503.http errorfile 504 /etc/haproxy/errors/504.http
128.2.1. stats
listen stats :8000 mode http transparent stats uri /haproxy-stats stats realm Haproxy \ statistic stats auth neo:chen stats hide-version listen admin_status mode http bind 202.76.124.110:8899 option httplog stats enable stats refresh 10s stats hide-version stats realm Haproxy\ Statistics stats uri /admin-status stats auth admin:password stats admin if TRUE
128.2.2. listen 方式
listen tomcat-app *:80 maxconn 2000 balance source option httpclose # disable keep-alive option forwardfor server app1 202.13.69.16:8080 check server app2 103.13.40.66:8080 check
128.2.3. frontend/backend 方式
frontend tomcat-app *:8080 default_backend tomcat-app backend tomcat-app balance source server app1 202.13.69.16:8080 check server app2 103.11.40.66:8080 check
128.2.4. option
128.2.4.1. httpclose
option httpclose # disable keep-alive
128.2.4.2. forwardfor
forwardfor 实例
listen web :80 mode http balance roundrobin option httpclose option forwardfor server web1 192.168.1.1:80 check weight 1 minconn 1 maxconn 3 check inter 40000 server web2 192.168.1.2:80 check weight 1 minconn 1 maxconn 3 check inter 40000
128.2.4.3. httpchk
option httpchk option httpchk <uri> option httpchk <method> <uri> option httpchk <method> <uri> <version> ex: option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www option httpchk GET /robots.txt option httpchk GET /index.html option httpchk * option httpchk GET /robots.txt # 指的是 GET /robots.txt HTTP/1.0 option httpchk # 指的是 OPTIONS / HTTP/1.0 option httpchk * # 指的是 OPTIONS * HTTP/1.0
128.2.5. balance
常用负载均衡算法
roundrobin 轮循 leastconn 最小连接数 source 源IP会话保持
128.2.6. server
server xxxxx xxx.xxx.xxx.xxx:xxx check port 80 inter 1500 rise 3 fall 3 weight 1
port 端口检查
inter 是检测心跳频率
rise 3次检查正确,认为服务器可用
fall 3次失败认为服务器不可用
weight 代表权重
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。
时间: 2024-10-19 02:23:07