码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Docker快速构建HaProxy集群,并配置好rabbitmq的负载均衡


    目录

    HAproxy功能:

    不具备的功能:

    一、准备工作

    1、创建相关目录

    2、安装docker-compose

    3、创建Dockerfile

    4、构建haproxy镜像

    二、构建haproxy集群

    1、集群规划

    2、创建docker-compose.yaml

    3、创建haproxy的配置文件,并配置rabbitmq集群的负载均衡

    4、构建haproxy

    5、访问192.168.78.200:8101/haproxy,查看当前haproxy状态

    6、总结


    HAproxy功能:

    TCP和HTTP反向代理
    SSL/TSL服务器
    可以针对HTTP请求添加cookie,进行路由后端服务器
    可平衡负载至后端服务器,并支持持久连接
    支持所有主服务器故障切换至备用服务器
    支持专用端口实现监控服务
    支持不影响现有连接情况下停止接收新连接请求
    可以在双向添加,修改或删除HTTP报文首部
    响应报文压缩
    支持基于pattern实现连接请求的访问控制
    通过特定的URI为授权用户提供详细的状态信息


    不具备的功能:

    正向代理
    缓存代理
    WEB服务
    不支持UDP协议
    单机性能–lvs

    一、准备工作

    1、创建相关目录

    1. # 创建存放haproxy 编排文件的目录
    2. mkdir -p /data/docker-compose/haproxy
    3. # 创建存放haproxy和keepalived同步文件的目录
    4. mkdir -p /data/docker-data/haproxy/keepalived

    2、安装docker-compose

    1. # 升级 pip
    2. pip3 install --upgrade pip
    3. # 指定 docker-compose 版本安装
    4. pip install docker-compose==1.22
    5. # 验证是否安装成功
    6. docker-compose -v

    3、创建Dockerfile

    1. mkdir -p /data/docker-dockerfile/haproxy
    2. cd /data/docker-dockerfile/haproxy
    3. vi Dockerfile
    4. FROM haproxy:2.4
    5. USER root
    6. RUN apt-get update \
    7. && apt-get install -y net-tools inetutils-ping vim iproute2 keepalived \
    8. && echo root:123456 | chpasswd

    4、构建haproxy镜像

    1. docker build -t haproxy2.4 .
    2. docker rmi docker.io/haproxy:2.4

     

    二、构建haproxy集群

    1、集群规划

    容器名IP映射端口用户名及密码
    haproxy_101170.200.9.1018101:8100,5601:5600root,123456
    haproxy_102170.200.9.1028102:8100,5602:5600root,123456

    2、创建docker-compose.yaml

    1. cd /data/docker-compose/haproxy
    2. vi docker-compose.yaml
    3. version: "3.6"
    4. services:
    5. haproxy_server_101:
    6. image: haproxy2.4
    7. ports:
    8. - "8101:8100"
    9. - "5601:5600"
    10. networks:
    11. haproxy:
    12. ipv4_address: 170.200.9.101
    13. privileged: true
    14. volumes:
    15. - /data/docker-data/haproxy:/haproxy
    16. - /data/docker-data/haproxy/keepalived/101:/keepalived
    17. container_name: haproxy_101
    18. command: haproxy -f /haproxy/haproxy.cfg
    19. haproxy_server_102:
    20. image: haproxy2.4
    21. ports:
    22. - "8102:8100"
    23. - "5602:5600"
    24. networks:
    25. haproxy:
    26. ipv4_address: 170.200.9.102
    27. privileged: true
    28. volumes:
    29. - /data/docker-data/haproxy:/haproxy
    30. - /data/docker-data/haproxy/keepalived/102:/keepalived
    31. container_name: haproxy_102
    32. command: haproxy -f /haproxy/haproxy.cfg
    33. networks:
    34. haproxy:
    35. driver: bridge
    36. ipam:
    37. config:
    38. - subnet: "170.200.9.0/24"

    3、创建haproxy的配置文件,并配置rabbitmq集群的负载均衡

    1. cd /data/docker-data/haproxy
    2. vi haproxy.cfg
    3. global
    4. #日志输出配置,所有日志都记录在本机,通过local0输出
    5. log 127.0.0.1 local0 info
    6. #最大连接数
    7. maxconn 10240
    8. #以守护进程方式运行
    9. daemon
    10. defaults
    11. #应用全局的日志配置
    12. log global
    13. mode http
    14. #超时配置
    15. timeout connect 5000
    16. timeout client 5000
    17. timeout server 5000
    18. timeout check 2000
    19. #haproxy的客户页面
    20. listen http_front
    21. bind 0.0.0.0:8100
    22. mode http
    23. option httplog
    24. stats uri /haproxy
    25. # web界面的用户和密码
    26. stats auth root:123456
    27. stats refresh 5s
    28. stats enable
    29. #负载均衡配置
    30. listen rabbimq_ha
    31. bind 0.0.0.0:5600
    32. option tcplog
    33. mode tcp
    34. #轮询算法
    35. balance roundrobin
    36. server mq1 192.168.78.200:5671 check inter 5000 rise 2 fall 2
    37. server mq2 192.168.78.200:5672 check inter 5000 rise 2 fall 2
    38. server mq3 192.168.78.200:5673 check inter 5000 rise 2 fall 2

    4、构建haproxy

    1. cd /data/docker-compose/haproxy
    2. docker-compose up -d

    5、访问192.168.78.200:8101/haproxy,查看当前haproxy状态

     

    6、总结

    到这里,就已经完成了haproxy的构建,并且将rabbitmq集群的负载均衡也配置完毕了。

    这里虽然在haproxy中安装了keepalived,但在本文中并没有使用到keepalived,后面会单独开一章来写keepalived,到时候会用到。

  • 相关阅读:
    早、准、易、全、快,基于运维指标体系的智能事件管理
    【论文阅读】 Dimensionality reduction for large-scale neural recordings
    Servlet系列:生命周期(init、 service、destroy)详解
    uniapp开发H5,分享链接到微信好友,显示标题和缩略图
    ES学习笔记
    【跨境电商卖家】Instagram营销初学者指南(一):重要性、优势
    C# async / await 用法
    微服务框架 SpringCloud微服务架构 8 Gateway 网关 8.6 过滤器链执行顺序
    西门子PLC与三菱PLC的区别
    100天精通Python(基础篇)——第22天:判断语句综合案例
  • 原文地址:https://blog.csdn.net/qq_27229113/article/details/126017255
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号