docker-compose配置文件如下
目录结构

[root@ZHTCYPT-SJJD-04 ~]# cd /data/haproxy/
[root@ZHTCYPT-SJJD-04 haproxy]# ll
total 8
drwxr-xr-x. 2 root root 4096 Apr 29 09:17 config
-rw-r–r–. 1 root root 304 Apr 28 17:57 haproxy.yml
haproxy.yml内容如下:

haproxy:
    image: haproxy:latest
    volumes:
        - ./config:/usr/local/etc/haproxy # haproxy的配置文件路径
    ports:
        - "1080:1080"  # 端口转换
        - "5000:5000"
        - "5001:5001"
    expose:
        - 1080   # haproxy对外暴露的端口
        - 5000
        - 5001

haproxy.cfg配置信息如下,位于config目录下

global
  log 127.0.0.1 local0 info  # 设置日志文件输出定向
  daemon
  maxconn 20000

defaults
  log                     global
  option tcplog
  option dontlognull
  retries 5
  option redispatch
  mode tcp
  timeout queue 1m
  timeout connect 10s
  timeout client 1m  #客户端空闲超时时间
  timeout server 1m  #服务端空闲超时时间
  timeout check 5s
  maxconn 10000

#listen http_front #haproxy的客户页面
#  bind 0.0.0.0:1080
#  stats uri /haproxy?stats

listen stats
    mode http
    log global
    bind 0.0.0.0:1080
    stats enable
    stats refresh 30s
    stats uri /haproxy-stats
    stats hide-version

listen  master
        bind *:5000
        mode tcp
        option tcplog
        balance leastconn
        http-check expect status 200
        default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
        server masterdb01 10.11.238.27:5432 cookie postgresql0_node1 maxconn 1000 check inter 5000 rise 2 fall 2
listen  replicas
        bind *:5001
        mode tcp
        option tcplog
        balance leastconn
        http-check expect status 200
        default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
        server slavedb01 10.11.238.49:5432 cookie postgresql0_node1 maxconn 1000 check inter 5000 rise 2 fall 2
        server slavedb02 10.11.238.50:5432 cookie postgresql0_node2 maxconn 1000 check inter 5000 rise 2 fall 2
        server slavedb03 10.11.238.51:5432 cookie postgresql0_node3 maxconn 1000 check inter 5000 rise 2 fall 2

启动方式:

docker-compose -f haproxy.yml up -d --build ##构建并启动
docker-compose -f haproxy.yml restart 重启
docker-compose -f haproxy.yml stop 停止
docker-compose -f haproxy.yml down 删除(移除容器)
docker-compose -f haproxy.yml logs 查询容器运行日志
文档更新时间: 2020-07-02 03:10   作者:月影鹏鹏