[root@server2 ~]# vim compose/haproxy/haproxy.cfg
内容:
global #全局设置
maxconn 65535
stats socket /var/run/haproxy.stat mode 600 level admin
log 127.0.0.1 local0 #日志输出设置,所有日志都记录在本机,通过local0输出
uid 200
gid 200
#chroot /var/empty
daemon
defaults #默认设置
mode http #所处理的类别,默认采用http模式,可配置称tcp作4层消息转发
log global #引用全局的日志配置
option httplog #启用日志记录HTTP请求,默认haproxy日志记录是不记录HTTP请求日志的
option dontlognull ##启用该项,日志中将不记录空连接。所谓空连接就是在上游的负载均衡器或者监控系统是为了探测该服务是否存活可用时,需要定期的连接或者获取某一固定的组件或页面,或者探测扫描端口是否在监听或开放等动作被称为空连接;官方文档中标注,如果该服务上游没有其他的负载均衡器的话,建议不要使用该参数,因为互联网上的恶意扫描或其他动作就不会被记录下来。
monitor-uri /monitoruri
maxconn 8000
timeout client 30s ##haproxy和客户端保持空闲连接的超时时长,在高并发下可稍微短一点,可设置为30秒以尽快释放连接
retries 2
option redispatch
timeout connect 5s ##haproxy和服务端建立连接的最大时长,其实设置为1秒就足够了。局域网内建立连接一般都是瞬间的
timeout server 5s ##haproxy和服务端保持空闲连接的超时时长,局域网内建立连接很快,所以尽量设置短一些,特别是并发时如设置为1-3秒
stats uri /admin/stats #访问监控界面的uri
#The public ‘www’ address in the DMZ
frontend balancer #frontend前端设置
bind *:80 #这里建议使用0.0.0.0:80或*:80的方式,要不然做集群高可用的时候有问题,vip切换到其他机器就不能访问了。
default_backend dynamic #定义一个web_backends前端部分。此处将对应的请求转发给后端
#The static backend backend for ‘Host: img’, /img and /css.
backend dynamic
balance roundrobin #使用RR负载均衡算法(#banlance roundrobin 轮循,banlance source 保存session值,支持static-rr,leastconn,first,uri等参数)
server n1 web1:80 check #其中n1会在监控界面上显示
server n2 web2:80 check #其中n2会在监控界面上显示