当前位置: 首页 > news >正文

厦门网站免费制作万能视频下载神器

厦门网站免费制作,万能视频下载神器,东莞网站seo优化,seo服务商技术好的公司引言HAProxy(High Availability Proxy)是一款高性能的TCP/HTTP负载均衡器和代理服务器,广泛用于构建高可用、可扩展的Web架构。它由法国开发者Willy Tarreau于2000年开发,如今已成为开源社区和企业级应用中不可或缺的工具。HAProx…

引言

HAProxy(High Availability Proxy)是一款高性能的TCP/HTTP负载均衡器和代理服务器,广泛用于构建高可用、可扩展的Web架构。它由法国开发者Willy Tarreau于2000年开发,如今已成为开源社区和企业级应用中不可或缺的工具。HAProxy以其卓越的性能、灵活性和丰富的功能,被用于处理数百万并发连接的场景,例如大型网站、API网关、微服务架构等。

本文将通过一个完整的实验,带你一步步在RHEL 9系统上搭建HAProxy负载均衡环境,并深入探索其核心功能,包括七层和四层负载均衡、健康检查、访问控制、HTTPS配置、动态权重调整等。

HAProxy 简介

1. HAProxy 是什么?

HAProxy 是一个开源的高性能 TCP/HTTP 负载均衡器,主要用于分发网络流量到多个后端服务器。它支持基于 HTTP 和 TCP 协议的负载均衡,能够实现高可用性、会话保持、动态权重调整、健康检查等功能。HAProxy 的设计目标是提供一个可靠且高效的解决方案,以应对高并发、高流量的业务需求。

2. HAProxy 的核心特性

  • 高性能:支持数万甚至数十万的并发连接。

  • 灵活的负载均衡算法:支持轮询(Round Robin)、最少连接(LeastConn)、源地址哈希(Source Hash)、一致性哈希(Consistent Hash)等。

  • 健康检查:自动检测后端服务器的健康状态,故障时自动切换。

  • 会话保持:通过 Cookie 或源地址哈希实现会话粘性。

  • SSL/TLS 支持:支持 HTTPS 协议,提供加密通信。

  • 动态配置:通过 socat 工具实现运行时动态调整后端服务器权重或状态。

  • 状态监控:提供 Web 状态页面,实时查看负载均衡器的运行状态。

3. HAProxy 的应用场景

  • Web 服务负载均衡:将流量分发到多个 Web 服务器,提高并发处理能力。

  • 数据库负载均衡:分发数据库请求到多个 MySQL 或 PostgreSQL 实例。

  • API 网关:作为 API 请求的入口,实现流量控制、路由和安全策略。

  • 微服务架构:在微服务中实现服务发现和负载均衡。

  • 高可用架构:通过健康检查和故障转移,确保服务的持续可用性。

实验环境准备

1.机器角色分配

  • HAProxy服务器(172.25.254.100)

  • 后端服务器1(RS1)

  • 后端服务器2(RS2)

  • 客户端:172.25.254.103

2.所有机器基础配置

  • 配置静态IP(根据上述分配)。

  • 关闭防火墙(临时测试用,生产需配置规则)

  • 关闭SELinxu

第一步:安装HAProxy和依赖

在HAProxy服务器(172.25.254.100)上执行

1.安装HAProxy:

dnf install haproxy -y

2.启动并启用HAProxy服务:

systemctl start haproxy
systemctl enable haproxy

第三步: 配置HAProxy负载均衡

在HAProxy服务器(172.25.254.100)上执行:

1.编辑HAProxy配置文件:

vim /etc/haproxy/haproxy.cfg

 2.配置内容

3.验证配置文件语法:

haproxy -c -f /etc/haproxy/haproxy.cfg-c:表示 "check"(检查)模式,仅验证配置文件的语法合法性,不会启动 HAProxy 服务
-f /etc/haproxy/haproxy.cfg:指定要检查的配置文件路径(这里是默认的配置文件路径)

 如果提示 Configuration file is valid,则配置正确。

    4.重启HAProxy服务

    systemctl restart haproxy

    第四步:测试负载均衡

    在客户端(192.168.0.103)上执行

    1.多次访问HAProxy服务器(172.25.254.100):

    for i in {1..10}; do curl http://172.25.254.100; sleep 0.5; done

    输出应交替显示RS和RS2,说明负载均衡生效。

    第五步:配置健康检查

    修改HAProxy配置文件

    1.编辑配置文件:

    vim /etc/haproxy/haproxy.cfg

    2.修改backend webcluster部分,添加健康检查:

    backend webclusterbalance roundrobinserver web1 192.168.0.101:80 checkserver web2 192.168.0.102:80 check

    3.重启HAProxy:

    systemctl restart haproxy

    4.测试健康检查

    • 在RS1上停止Nginx服务:

      systemctl stop nginx
    • 再次运行客户端测试命令:

      for i in {1..10}; do curl http://172.25.254.100; sleep 0.5; done

    所有请求应只返回RS2 server - 192.168.0.102。

    第六步:配置访问控制(ACL)

    修改HAProxy配置文件

    1.编辑配置文件:

    vim /etc/haproxy/haproxy.cfg

    2.添加以下内容到defaults段之后:

    frontend webserverbind *:80acl block_curl hdr_sub(User-Agent) -i curlhttp-request deny if block_curldefault_backend webcluster

    这将阻止使用curl工具的访问。

    3.重启HAProxy:

    systemctl restart haproxy

    4.测试ACL:

     使用curl访问会失败:curl http://172.25.254.100

     返回403 Forbidden。

    将curl的请求头伪装为Firefox 128.0 浏览器,绕过基于User-Agent的拦截规则。

    第七步:配置HTTPS

    1.生成自签名证书

    1.1在HAProxy服务器上生成证书:

    mkdir /etc/haproxy/certs
    openssl req -newkey rsa:2048 -nodes -keyout /etc/haproxy/certs/haproxy.key -x509 -days 365 -out /etc/haproxy/certs/haproxy.crt

    1.2合并证书和私钥:

    cat /etc/haproxy/certs/haproxy.key /etc/haproxy/certs/haproxy.crt > /etc/haproxy/certs/haproxy.pem

    2.修改HAProxy配置文件

    2.1编辑配置文件:

    vim /etc/haproxy/haproxy.cfg

    2.2添加以下配置:

    3.重启HAProxy:

    systemctl restart haproxy

    4.测试

    4.1HTTP请求测试:

    HAproxy的80端口(HTTP)监听正常,触发了配置中的redirect scheme https code 301规则。重定向逻辑正确,将 HTTP 请求强制导向 HTTPS 地址,符合预期。

    4.2HTTPS请求测试:

    HAProxy 的 443 端口(HTTPS)监听正常,SSL 证书配置有效(-k参数跳过证书验证,适合测试环境)。

    请求已成功转发到后端的 Nginx 服务器(172.25.254.101172.25.254.102),后端服务器正常响应。

    第八步:配置状态页

    1.编辑配置文件:

    vim /etc/haproxy/haproxy.cfg

    2.在defaults段之后添加状态页配置:

    listen statsbind *:8888mode httpstats enablestats uri /haproxy-statusstats auth admin:admin123stats hide-versionstats refresh 2s

    3.重启HAProxy:

    systemctl restart haproxy

     4.访问状态页:

    • 浏览器访问 http://172.25.254.100:8888/haproxy-status

    • 用户名:admin,密码:admin123

    第九步:动态调整后端服务器权重

    通过 HAProxy 的 Unix 套接字(socket) 动态管理后端服务器(webcluster 组中的 web1),无需重启 HAProxy 服务。

    使用socat工具

    1.安装socat

    dnf install socat -y

    2.修改HAProxy配置文件

    授予socket管理员权限。(未修改前无法使用set weight,是因为 HAProxy 默认对统计 socket 仅开放读取权限,限制了写入操作)

    3.设置权重

    # 查看 web1 权重
    [root@haproxy ~]# echo "get weight webcluster/web1" | socat stdio /var/lib/haproxy/stats
    1 (initial 1)
    # 查看 web2 权重
    [root@haproxy ~]# echo "get weight webcluster/web2" | socat stdio /var/lib/haproxy/stats
    1 (initial 1)
    # 设置 web2 权重
    [root@haproxy ~]# echo "set weight webcluster/web2 2" | socat stdio /var/lib/haproxy/stats
    # 验证 web2 权重
    [root@haproxy ~]# echo "get weight webcluster/web2" | socat stdio /var/lib/haproxy/stats
    2 (initial 1)

    4.测试验证

    5.禁用/启用后端服务器

    # 禁用后端服务器 web1
    echo "disable server webcluster/web1" | socat stdio /var/lib/haproxy/stats
    # # 启用后端服务器 web1
    echo "enable server webcluster/web1" | socat stdio /var/lib/haproxy/stats

    第十步:配置四层负载均衡(TCP)

    1.编辑配置文件:

    vim /etc/haproxy/haproxy.cfg

    2.添加以下内容:

    listen mysql_portbind *:3306  # 监听所有IP的3306端口mode tcp    # MySQL基于TCP协议balance leastconn   # 最少连接数算法,适合数据库负载均衡server mysql1 172.25.254.101:3306 check inter 3s fall 3  rise 5  weight 2 # 后端服务器1,启动健康检查server mysql2 172.25.254.102:3306 check inter 3s fall 3  rise 5  weight 1 # 后端服务器2,启用健康检查

    3.重启HAProxy:

    systemctl restart haproxy

    4.安装并启动mariadb:  

    • 在RS1和RS2上安装MySQL(或MariaDB)并配置监听3306端口。

    # 两台机器都执行
    dnf install mariadb-server -y  # 安装
    systemctl start mariadb        # 启动
    systemctl enable mariadb       # 开机自启

    5.配置数据库区分标识(方便验证负载均衡)

    # (rs1):设置server-id=101
    vim /etc/my.cnf
    [mysqld]
    server-id=101  # 唯一标识,区分不同服务器#(rs2):设置server-id=102
    vim /etc/my.cnf
    [mysqld]
    server-id=102# 重启数据库使配置生效
    systemctl restart mariadb

     6.授权数据库访问(允许 HAProxy 转发的客户端连接)

    # rs1和rs2都执行,授权用户admin(密码admin)从任何IP访问数据库
    mysql -e "grant all on *.* to 'admin'@'%' identified by 'admin';"
    mysql -e "flush privileges;"  # 刷新权限

    7.在Clinet上安装 MySQL 客户端(用于连接测试)

    dnf  install mariadb -y  

    8.在Client上测试 多次连接 HAProxy,查看分配结果

    # 连接HAProxy服务器(IP为172.25.254.100),查询服务器标识
    mysql -uadmin -padmin -h 172.25.254.100 -e "show variables like 'hostname'"  # 查看主机名
    mysql -uladmin -padmin -h 172.25.254.100 -e "select @@server_id"  # 查看server-id

    负载均衡配置已经成功生效

    • 多次访问172.25.254.100(HAProxy 节点)时,请求被交替分发到后端的 101(server_id=101,主机名rs1)和 102(server_id=102,主机名rs2)。

    • admin用户的权限配置正确,能够正常连接并执行查询命令(如show variablesselect @@server_id)。

    • 结合之前的 HAProxy 配置(balance leastconn),这种交替返回的结果符合 “最少连接数” 负载均衡策略的预期(在连接数相近时会交替分配)。

    总结

    HAProxy 作为一款高性能、功能丰富的开源负载均衡器,是构建高可用架构的核心组件。通过本次实验,我们不仅掌握了其基础配置,还深入实践了动态管理、安全策略和四层负载均衡等高级功能。HAProxy 的灵活性和稳定性使其成为企业级应用的理想选择,未来可通过持续学习其高级特性(如 ACL 规则优化、SSL 终止加速等)进一步提升技能水平。

        http://www.dtcms.com/a/463521.html

        相关文章:

      1. Linux小课堂: 理解命令行提示符与基本命令使用
      2. 备案网站名称与实际网站名称不一致郑州网站建设方案优化
      3. 做网站通常到哪找图片学校网页制作视频教程
      4. 管理网站模板下载免费一键优化表格
      5. 贵阳汽车网站建设四川攀枝花网站建设
      6. wordpress 局域网天津网站seo策划
      7. 动漫建模代做网站百度一下一个做flash的网站
      8. 站长统计app下载免费公司推广网站建设话术
      9. 哪种源码做视频网站好用自媒体135软件
      10. 旅游网站建设初衷呼叫中心系统厂家排名
      11. 做公司网站哪家好 上海网站建设教程pdf百度云
      12. CNN卷积计算
      13. 石家庄建设局官方网站wordpress图片主题破解
      14. 网站添加文字大小小制作小发明简单做法
      15. 网站建没有前景网址大全有用吗
      16. 模板王网站怎么下载不了模板微信游戏小程序代理
      17. 杭州做网站哪个公司好阳江房产网官网查询
      18. 漳浦县建设局网站济南个人制作网站
      19. 湖北望新建设有限公司网站网站建设服务器费用
      20. 厦门学网站建设美食网页界面设计
      21. 自己做的网站如何上首页设计与绘制一个网站首页
      22. redis的红锁
      23. 网站空间的控制面板首页如何添加网站代码
      24. 电商网站的成本做网站的视频
      25. Python实例方法与Python类的构造方法全解析
      26. 网站关键词突然搜不到了标签在数据库wordpress
      27. 公司网站 正式上线asp网站有哪些
      28. 免费凡科网站wordpress程序覆盖
      29. 小说网站建设费用wordpress局部刷新
      30. 写作网站推荐行业信息网站有哪些