###########全局配置#########
global
   log 127.0.0.1 local3 #[日志输出配置,所有日志都记录在本机,通过local0输出]
   log 127.0.0.1 local1 notice #定义haproxy 日志级别[error warringinfo debug]
   daemon #以后台形式运行harpoxy
   nbproc 1 #设置进程数量
   maxconn 1024 #默认最大连接数,需考虑ulimit-n限制
#user haproxy #运行haproxy的用户
#group haproxy #运行haproxy的用户所在的组
#pidfile /var/run/haproxy.pid #haproxy 进程PID文件
#ulimit-n 819200 #ulimit 的数量限制
#chroot /usr/share/haproxy #chroot运行路径
#debug #haproxy 调试级别,建议只在开启单进程的时候调试
#quiet

########默认配置############
defaults
    log global
    mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
    option httplog #日志类别,采用httplog
    option dontlognull #不记录健康检查日志信息
    retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置
    #option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip
    option httpclose #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现
    #option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器,以后将不支持
    option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
    maxconn 4096 #默认的最大连接数
    timeout connect 5000ms #连接超时
    timeout client 30000ms #客户端超时
    timeout server 30000ms #服务器超时
    #timeout check 2000 #心跳检测超时
    #timeout http-keep-alive10s #默认持久连接超时时间
    #timeout http-request 10s #默认http请求超时时间
    #timeout queue 1m #默认队列超时时间
    balance roundrobin #设置默认负载均衡方式,轮询方式
    #balance source #设置默认负载均衡方式,类似于nginx的ip_hash
    #balnace leastconn #设置默认负载均衡方式,最小连接数


listen admin_stats  
    bind 0.0.0.0:1080               #设置Frontend和Backend的组合体,监控组的名称,按需要自定义名称  
    stats enable
    mode http                       #http的7层模式  
    option httplog                  #采用http日志格式  
    #log 127.0.0.1 local0 err       #错误日志记录  
    maxconn 10                      #默认的最大连接数  
    stats refresh 30s               #统计页面自动刷新时间  
    stats uri /stats                #统计页面url  
    stats realm XingCloud\ Haproxy  #统计页面密码框上提示文本  
    stats auth admin:admin     #设置监控页面的用户和密码:admin,可以设置多个用户名  
    stats auth  Frank:Frank   #设置监控页面的用户和密码:Frank  
    stats hide-version              #隐藏统计页面上HAProxy的版本信息  
    stats  admin if TRUE       #设置手工启动/禁用,后端服务器(haproxy-1.4.9以后版本)  

listen test_http   
    bind 0.0.0.0:8888
    mode http 
    balance roundrobin
    server k1 192.168.0.11:8080 check inter 2000 fall 3
    server k2 192.168.0.12:8080 check inter 2000 fall 3
    server k3 192.168.0.13:8080 check inter 2000 fall 3

frontend https_frontend
    bind 0.0.0.0:6441
    mode http
    option tcplog
    #default_backend https_backend
    acl is_serverA path_beg  -i /serverA # 目录分发
    use_backend http_backend_A if is_serverA

backend http_backend_A
    mode http
    balance roundrobin
    stick-table type ip size 200k expire 30m
    stick on src
    server k1 192.168.0.139:6441 check inter 2000 fall 3

frontend join_frontend
    bind 0.0.0.0:9898
    mode http
    default_backend join_backend

backend join_backend
    mode http
    balance roundrobin
    server k1 192.168.0.75:9898 check inter 2000 fall 3
    server k2 192.168.0.12:9898 check inter 2000 fall 3
    server k3 192.168.0.13:9898 check inter 2000 fall 3