2. HAProxy的配置
HAProxy配置中分红五部份内容,固然这些组件不是必选的,能够根据须要选择部分做为配置。
global:参数是进程级的,一般和操做系统(OS)相关。这些参数通常只设置一次,若是配置无误,就不须要再次配置进行修改
defaults:配置默认参数的,这些参数能够被利用配置到frontend,backend,listen组件
frontend:接收请求的前端虚拟节点,Frontend能够根据规则直接指定具体使用后端的 backend(可动态选择)。
backend:后端服务集群的配置,是真实的服务器,一个Backend对应一个或者多个实体服务器。
listen:Frontend和Backend的组合体。
下面是HAProxy的一些经常使用的配置,这个配置是用来讲明HAProxy的一些经常使用功能的配置,具体详细配置请查看安装目录下的doc目录下的文档文件,或者到” http://cn.haproxy.org/”
下载中文配置说明文档
配置文件例子:
global
#全局的日志配置 其中日志级别是[err warning info debug]
#local0 是日志设备,必须为以下24种标准syslog设备的一种:
#kern user mail daemon auth syslog lpr news
#uucp cron auth2 ftp ntp audit alert cron2
#local0 local1 local2 local3 local4 local5 local6 local7
#可是以前在/etc/syslog.conf文件中定义的是local0因此
#这里也是用local0
log 127.0.0.1 local0 info #[err warning info debug]
#最大链接数
maxconn 4096
#用户
user admin
#组
group admin
#使HAProxy进程进入后台运行。这是推荐的运行模式
daemon
#建立4个进程进入deamon模式运行。此参数要求将运行模式设置为"daemon"
nbproc 4
#将全部进程的pid写入文件启动进程的用户必须有权限访问此文件。
pidfile /home/admin/haproxy/logs/haproxy.pid
defaults
#默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
mode http
#采用http日志格式
option httplog
#三次链接失败就认为是服务器不可用,也能够经过后面设置
retries 3
若是cookie写入了serverId而客户端不会刷新cookie,
#当serverId对应的服务器挂掉后,强制定向到其余健康的服务器
option redispatch
#当服务器负载很高的时候,自动结束掉当前队列处理比较久的连接
option abortonclose
#默认的最大链接数
maxconn 4096
#链接超时
contimeout 5000
#客户端超时
clitimeout 30000
#服务器超时
srvtimeout 30000
#=心跳检测超时
timeout check 2000
#注:一些参数值为时间,好比说timeout。时间值一般单位为毫秒(ms),可是也能够经过加#后缀,来使用其余的单位。
#- us : microseconds. 1 microsecond = 1/1000000 second
#- ms : milliseconds. 1 millisecond = 1/1000 second. This is the default.
#- s : seconds. 1s = 1000ms
#- m : minutes. 1m = 60s = 60000ms
#- h : hours. 1h = 60m = 3600s = 3600000ms
#- d : days. 1d = 24h = 1440m = 86400s = 86400000ms
########统计页面配置############
listen admin_stats
#监听端口
bind 0.0.0.0:1080
#http的7层模式
mode http
#日志设置
log 127.0.0.1 local0 err #[err warning info debug]
#统计页面自动刷新时间
stats refresh 30s
#统计页面url
stats uri /admin?stats
#统计页面密码框上提示文本
stats realm Gemini\ Haproxy
#统计页面用户名和密码设置
stats auth admin:admin
stats auth admin1:admin1
#隐藏统计页面上HAProxy的版本信息
stats hide-version
#######网站检测listen定义############
listen site_status
bind 0.0.0.0:1081
mode http
log 127.0.0.1 local0 err #[err warning info debug]
#网站健康检测URL,用来检测HAProxy管理的网站是否能够用,正常返回200,不正常返回500
monitor-uri /site_status
#定义网站down时的策略
#当挂在负载均衡上的指定backend的中有效机器数小于1台时返回true
acl site_dead nbsrv(denali_server) lt 1
acl site_dead nbsrv(tm_server) lt 1
acl site_dead nbsrv(mms_server) lt 1
#当知足策略的时候返回500
monitor fail if site_dead
#若是192.168.0.252或者192.168.0.31这两天机器挂了
#认为网站挂了,这时候返回500,判断标准是若是mode是
#http返回200认为是正常的,若是mode是tcp认为端口畅通是好的
monitor-net 192.168.0.252/31
########frontend配置############
frontend http_80_in
#监听端口
bind 0.0.0.0:80
#http的7层模式
mode http
#应用全局的日志配置
log global
#启用http的log
option httplog
#每次请求完毕后主动关闭http通道,HA-Proxy不支持keep-alive模式
option httpclose
#若是后端服务器须要得到客户端的真实IP须要配置次参数,将能够从Http Header中
#得到客户端IP
option forwardfor