Docker 安装Haproxy

  • 搜索相关Haproxy镜像

    docker search haproxy
    
  • 下载选定的Haproxy镜像,这里我们选择官方镜像,如果未指定版本则默认为最新版本,latest版本

    docker pull haproxy
    
  • 运行镜像

    docker run -d --name haproxy --net=host haproxy
    
  • 映射容器工作目录

    docker cp {container}:/usr/local/etc/haproxy /root/haproxy
    
  • 删除容器

      docker rm -f {container}
    
  • 重新运行镜像

    docker run -d --name haproxy --net=host haproxy
    
  • 配置参考1(将本机得5672端口,映射为192.168.1.2:5672,且配置ACL访问控制,仅允许182.139.94.65得IP访问)

    listen rabbitmq
    bind 0.0.0.0:5672
    mode tcp
    maxconn 100
    server rabbitmq 192.168.1.2:5672    # 直接配置地址
    acl vpnnetwork src 182.139.94.65/32       # 配置acl限制非acl地址访问
    tcp-request content  accept  if  vpnnetwork
    tcp-request content  reject
    
  • 配置参考2(将本机的12113端口,映射为192.168.1.2:12113)

    # 更改配置文件haproxy.cfg,可参考:https://www.cnblogs.com/zyd112/p/8888945.html
    # 全局配置
    global
       log 127.0.0.1 local3 info
       maxconn 100000
       # user haproxy
       # group haproxy
       daemon          # 设置为后台进程
       nbproc 4        # 进程数量(可以设置多个进程提高性能) 
       ulimit-n 65535  # ulimit的数量限制
    
    # Haproxy控制台管理
    listen admin_stats
       stats    enable
       bind     0.0.0.0:9090
       mode     http
       option   httplog
       log      global
       maxconn  10
       stats    refresh 30s  # 统计页面自动刷新时间
       stats    uri /admin  # 访问的uri:ip:8080/admin
       stats    realm haproxy
       stats    auth admin:netty  # 认证用户名和密码
       stats    hide-version  # 隐藏HAProxy的版本号
       stats    admin if TRUE  # 管理界面,如果认证成功了,可通过webui管理节点
    
    # EMQ前端TCP代理
    frontend netty-front
       bind 0.0.0.0:12113
       mode tcp  # 默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK  
       option redispatch  # 当serverId对应的服务器挂掉后,强制定向到其他健康的服务器  
       option abortonclose  # 当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
       balance roundrobin  # 负载均衡算法 
       maxconn 100000  # 最大链接数
       timeout connect 60s  # 连接超时 
       timeout client  30000  # 客户端超时
       ###timeout client 24h
       ##这个参数在使用EMQ压力测试时很有用,刚开始设备的超时时间过段,导致测试一小会儿就出现 {shutdown,connack_timeout}
    
       timeout server  30000  #服务器超时   
       default_backend netty-backend
    
    # EMQ后端TCP代理
    backend netty-backend
       balance roundrobin  # 轮询配置参考:https://www.cnblogs.com/zyd112/p/8888945.html
       server netty1 192.168.1.2:12113 check inter 10000 fall 2 rise 5 weight 1
       # server netty2 192.168.1.2:12113 check inter 10000 fall 2 rise 5 weight 1 
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容