haproxy-1.6.1.tar.gz
2、安装:
make TARGET=linux26 prefix=/usr/local/haproxy #TARGET指定主机的linux内核版本,指定prefix安装时未生效,不知道具体原因
make install
3、配置:
配置文件需要自己新建,
mkdir /etc/haproxy #创建目录
vi /etc/haproxy/haproxy.cfg #编辑并创建配置文件
配置文件分为5个部分 :global defaults frontend backend listen
global:配置中的参数为进程级别的参数,且通常与其运行的操作系统有关
defaults:用于为所有其他配置段提供默认参数,这配置默认配置参数可由下一个"defaults"所重新设定
forntend:用于定义一系列监听的套接字,这些套接字可以接受客户端请求并与子建立连接
backend: 用于定义一系列“后端”服务器,代理将会将对应客户端的请求转发至这些服务器
listen: 用于定义通过关联“前段”和“后端”一个完整的代理,通常只对TCP流量有用
global
maxconn 5120 #设定每个haproxy进程所接受的最大并发连接数,其等同于命令行选项"-n","ulimit-n"自动计算的结果正式参照从参数设定的
chroot /usr/local #修改haproxy的工作目录至指定的目录,并在放弃权限之前执行chroot()操作,可以提升haproxy的安全级别,不过需要注意的是确保指定的目录为空目录且任何用户均不能有写权限
uid 5218 #已指定的UID身份运行haproxy进程也可以用user指定用户名
gid 5218 #同gid,不过这里为指定的组名 也可以用group指定组名
daemon #让haproxy以守护进程的方式工作于后台,其等同于“-D”选项的功能,当然,也可以在命令行中以“-db”选项将其禁用
nbproc 1 #指定启动的haproxy进程个数,只能用于守护进程模式的haproxy;默认为止启动一个进程,鉴于调试困难等多方面的原因,一般只在但进程仅能打开少数文件描述符的场中中才使用多进程模式
pidfile /usr/local/logs/haproxy.pid #pid文件的存放位置
defaults
mode http #协议模式
retries 2 #连接后台服务器失败后连接几次断定故障
option redispatch # 是否允许重新分配在session 失败后
option abortonclose #丢弃由于客户端等待时间过长而关闭连接但仍在haproxy等待队列中的请求
timeout connect 5000ms #超时设置
timeout client 30000ms
timeout server 30000ms
timeout check 2000
log 127.0.0.1 local0 err
balance roundrobin #负载算法
frontend main
bind *:8080#监听端口号,前面一般加*或0.0.0.0
acl url_static path_beg -i /static #于实现基于请求报文的首部、响应报文的内容或其他的环境状态信息来做出转发决策,这大大增强了其配置弹性,其配置法则通常非为两步,首先定义ACL,及定义一个测试条件,而后在条件得到满足时执行某特定的动作,如阻止请求或转发至某特定的后端
acl url_css path_end -i .css
use_backend static if url_static #规则时为实例指定使用的默认后端,因此,其不可应用于backend区段,在“frontend”和“backend”之间进行内容交换时,通常使用“use-backend”定义其匹配规则,而没有被匹配到的请求将有此参数指定的后端接收
use_backend css if url_css
default_backend webserver #对于上面未符合规则的默认规则
backend static
balance roundrobin
server web01 10.20.14.85:80 check inter 2000 fall 3 weight 10 #check启动对此server执行监控状态检查inter: 设定监控状态检查的时间间隔,单位为毫秒,默认为2000 rise:设定检查状态检查中,某离线的server从离线状态转换至正常状态需要成功检查的次数 fall:设定检查状态检查中,某离线的server从正常状态转换至离线状态需要成功检查的次数
server web02 10.20.14.86:80 check inter 2000 fall 3 weight 10
backend css
balance roundrobin
server web01 10.20.14.85:80 check inter 2000 fall 3 weight 10
backend webserver
balance roundrobin
server web01 10.20.14.85:80 check inter 2000 fall 3 weight 10
listen admin_stats
bind 0.0.0.0:8888
option httplog
stats refresh 30s #定义刷新时间间隔
stats uri /stats #定义默认的请求url
stats realm Haproxy Manager #启用统计报告并高精认证领域,此参数仅在与“stats auth”配置使用时有意义
stats auth admin:admin #指定账户密码此参数仅在与“stats auth”配置使用时有意义
stats hide-version #隐藏haproxy版本