一:Global parameters
* Process management and security
- chroot 改变当前工作目录
- daemon 运行方式为后台工作
- user - group 工作用户和组
-log
日志输出设备- nbproc 创建工作的进程数目
-pidfile pid文件位置
- ulimit-n 设置每个进程的可用的最大文件描述符
- stats 创建监控所用的套接字目录
- node 创建另外一个节点名字共用一个IP地址,用来识别哪个节点在处理流量
- description 描述实例的名称
maxconn 每个进程可用的最大连接数
maxpipes 每个进程可用的最大管道数
nokqueue nopoll nosepoll nosplice 禁用这些功能
spread-checks <0..50, in percent> health check 的时间间隔
tune.bufsize
tune.maxaccept
tune.maxpollevents
tune.maxrewrite
tune.rcvbuf.client
tune.rcvbuf.server
tune.sndbuf.client
tune.sndbuf.server
以上凭字面理解吧
debug 调试模式,输出启动信息到标准输出
quiet 安装模式,启动时无输出
二:defaults 块
作用于其后紧跟的listen块,直至下一个defaults 块,下一个default 将替换上一个块作用于以后的listen
frontend 块,接受请求的端口组
backend块,后端处理的server 组
listen块,frontend和backend 块的结合
三:常用配置命令
balance [ ]
balance url_param [check_post []] 负载均衡模块设置
Examples :
balance roundrobin
balance url_param userid
balance url_param session_id check_post 64
balance hdr(User-Agent)
balance hdr(host)
balance hdr(Host) use_domain_only
block { if | unless } 在7层阻止访问
Example:
acl invalid_src src 0.0.0.0/7 224.0.0.0/3 acl定义和squid 很像
acl invalid_src src_port 0:1023
acl local_dst hdr(host) -i localhost
block if invalid_src || local_dst
capture cookie len 在请求和回应包中捕捉记录指定长度的cookie,name 为cookie的开头几个字母
Example:
capture cookie ASPSESSION len 32
capture request header len
capture response header len 同上
clitimeout (deprecated)
contimeout (deprecated) 客户端超时时间,不赞成设置
cookie [ rewrite | insert | prefix ] [ indirect ] [ nocache ] [ postonly ] [ domain ]* 允许持续的基于cookie 的后端连接
default_backend 默认应用的后端
Example :
use_backend dynamic if url_dyn
use_backend static if url_css url_img extension_img
default_backend dynamic 当没有匹配时就用dynamic
errorfile 定义出现错误的代码的返回页
Example :
errorfile 400 /etc/haproxy/errorfil