haproxy 配置文件说明

haproxy.cfg
global                                # 全局配置
    log         127.0.0.1 local0
    log         127.0.0.1 local1 notice
    maxconn     4096                  # 最大连接数  
    uid         1005                  # 所属运行的用户UID  
    gid         1005                  # 所属运行的用户组  
    daemon                            # 以后台形式运行HAProxy 
    #nbproc                           # 启动1个实例,可以启多个来提高效率      
    #pidfile    /var/run/haproxy.pid  

defaults                            # 默认配置
    log     global
    mode    http
    option  httplog
    option  dontlognull
    retries 3                       # 重试次数 
    #option httpclose               # 每次请求完毕后主动关闭http通道 
    option  redispatch              # 当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    #option abortonclose            # 当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接  
    #option dontlognull             # 保证HAProxy不记录上级负载均衡发送过来的用于检测状态没有数据的心跳包 
    maxconn 2000                    # 最大连接数
    #balance source                 # 如果想让HAProxy按照客户端的IP地址进行负载均衡策略,即同一IP地址的所有请求都发送到同一服务器时需要配置此选项  
    timeout connect 5000
    timeout client  50000
    timeout server  50000

listen admin_stats                  # 配置段通过关联“前端”和“后端”定义了一个完整的代理,通常只对TCP流量有用
    bind 0.0.0.0:1080               # 监听端口  
    mode http                       # http的7层模式  
    option httplog                  # 采用http日志格式 
    maxconn 10
    stats refresh 30s               # 统计页面自动刷新时间
    stats uri /stats                # 统计页面url  
    stats realm yooCloud Haproxy    # 统计页面密码框上提示文本  
    stats auth admin:admin          # 统计页面用户名和密码设置
    stats hide-version              # 隐藏统计页面上HAProxy的版本信息

frontend weblb                      # 配置段用于定义一系列监听的套接字,这些套接字可接受客户端请求并与之建立连接
    bind *:80
    acl is_dg hdr_beg(host) dg.test.com         # 该行定义一个is_dg规则,如果客户端请求的是dg.test.com这个域名,则定义该规则为is_dg
    acl is_ilanni hdr_beg(host) ilanni.test.com
    acl is_171 hdr_beg(host) 172.18.19.101
    acl is_ip src 172.18.19.102                 # 该行定义一个is_ip规则,如果客户端的IP地址是192.168.5.140,则定义该规则为is_ip
    use_backend acl if is_171 is_ip             # 该定义一个acl服务器组,如果客户端请求同时符合is_ip和is_171定义的规则,则把该客户端的请求分发到acl服务器组
    use_backend dgserver if is_dg               # 该定义一个dgserver服务器组,如果客户端请求符合is_dg定义的规则,则把该客户端的请求分发到dgserver服务器组
    use_backend ilanni if is_ilanni
    use_backend 171server if is_171
    default_backend backend_default             # 该行定义一个默认服务器组,如果客户端请求不符合上述定义的任何一个规则,则把该客户端的请求分发到backend_default服务器组

backend dgserver                    # 配置段用于定义一系列“后端”服务器,代理将会将对应客户端的请求转发至这些服务器
    balance source
    server web1 172.18.19.101:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3
    server web2 172.18.19.102:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3
    server web3 172.18.19.103:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

backend 171server
    balance roundrobin
    server dg1 172.18.19.102:80 check
    server dg2 172.18.19.103:80 check

backend ilanni
    server web1 www.yuanbaopu.com:80 weight 3 check inter 2000 rise 2 fall 3

backend acl
    balance source
    server web1 www.ilanni.com:80 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3

backend backend_default
    server web1 192.168.5.178:8080 weight 3 check inter 2000 rise 2 fall 3

listen 8090
    bind 0.0.0.0:8090
    mode http
    balance roundrobin
    server web1 192.168.5.174:8090 maxconn 1024 weight 5 check inter 2000 rise 2 fall 3
    server web2 192.168.5.178:8090 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3
发布了112 篇原创文章 · 获赞 11 · 访问量 45万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章