这是一篇学习笔记,之前看Haproxy的配置使用,真是一头雾水,有一些配置项,都不知道是做什么用的?更别说灵活配置了,所以这次下定决心,从官方的网站上从头开始看配置文档,因为官方的文档是英文,本人的英文比较烂,在看的过程中做了这个笔记。
官方的文档:http://cbonte.github.io/haproxy-dconv/1.7/configuration.html
一、配置优先级
在Haproxy中配置的参数主要有几下来源(按照优先级高到低排序):
- 命令行
- global
- default
- listen、frontend、backend
二、时间格式
- us : 微妙. 1 微妙 = 1/1000000 秒
- ms : 毫秒. 1 毫秒 = 1/1000 秒. (默认的时间单位是:秒)
- s : 秒. 1秒 = 1000 毫秒
- m : 分. 1分 = 60秒 = 60000 毫秒
- h : 小时. 1小时 = 60分 = 3600秒 = 3600000毫秒
- d : 天. 1天 = 24小时 = 1440分 = 86400秒 = 86400000毫秒
三、测试配置命令
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg -c
四、配置项详解
为了能够对配置有一些更清晰的了解。我将整个haproxy的配置拆分成了众多的维度。下面来逐个介绍说明:
4.2 Userlists的配置
userlist <listname>
group <groupname> [users <user>,<user>,(…)]
user <username> [password|insecure-password <password>] [groups <group>,<group>,(…)]
举例:
userlist L1 group G1 users tiger,scott group G2 users xdb,scott user tiger password $6$k6y3o.eP$JlKBx9za9667qe4(...)xHSwRv6J.C0/D7cV91 user scott insecure-password elgato user xdb insecure-password hello userlist L2 group G1 group G2 user tiger password $6$k6y3o.eP$JlKBx(...)xHSwRv6J.C0/D7cV91 groups G1 user scott insecure-password elgato groups G1,G2 user xdb insecure-password hello groups G2
4.3 Peers的配置
peers <peersect>
disabled
enable
peer <peername> <ip>:<port>
举例:
peers mypeers peer haproxy1 192.168.0.1:1024 peer haproxy2 192.168.0.2:1024 peer haproxy3 10.2.0.1:1024 backend mybackend mode tcp balance roundrobin stick-table type ip size 20k peers mypeers stick on src server srv1 192.168.0.30:80 server srv2 192.168.0.31:80
4.4 Mailers的配置
mailers <mailersect>
mailer <mailername> <ip>:<port>
timeout mail <time>
mailers mymailers timeout mail 20 mailer smtp1 192.168.0.1:587 mailer smtp2 192.168.0.2:587 backend mybackend mode tcp balance roundrobin email-alert mailers mymailers email-alert from test1@horms.org email-alert to test2@horms.org server srv1 192.168.0.30:80 server srv2 192.168.0.31:80