热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HAproxy七层负载均衡——环境搭建及实现过程详解

实验环境主机名IP服务虚拟机server1172.25.6.1haproxy,httpd,服务端虚拟机server2172.25.6.2httpd,phpÿ

实验环境


主机名IP服务
虚拟机server1172.25.6.1haproxy,httpd,服务端
虚拟机server2172.25.6.2httpd,php,客户端
虚拟机server3172.25.6.3httpd,php,客户端
物理机172.25.6.250测试端

一、HApronxy实现负载均衡的配置过程

1.从官网获得一个HAproxy的安装包,解压安装包
在这里插入图片描述
2.将源码包打包成一个rpm包

(1)查找.spec文件 (有这个文件才能把一个源码包打成rpm包)

find . -name *.spec

在这里插入图片描述

(2)安装编译工具rpm-build gcc pcre-devel

yum install -y rpm-build gcc pcre-devel

(3)编译安装包

rpmbuild -tb haproxy-1.7.3.tar.gz

在这里插入图片描述
编译完成之后会出现一个rpmbuild目录,rpm安装包在这个目录中

在这里插入图片描述
在这里插入图片描述

3.安装rpm包

rpm -ivh haproxy-1.7.3-1.x86_64.rpm

在这里插入图片描述

4.编辑haproxy的配置文件

(1)haproxy的配置文件在源码包中

在这里插入图片描述

content-sw-sample.cfg 是haproxy的默认配置文件

(2)将这个文件复制到/etc/haproxy目录下

在这里插入图片描述

(3)编辑配置文件

vim haproxy.cfg

globalmaxconn 10000 ##最大连接数stats socket /var/run/haproxy.stat mode 600 level adminlog 127.0.0.1 local0uid 200 ##haproxy用户的uidgid 200 ##haproxy用户的gidchroot /var/emptydaemondefaultsmode http ##默认使用http的7层模式 tcp:4层log globaloption httplogoption dontlognullmonitor-uri /monitorurimaxconn 8000timeout client 30soption prefer-last-serverretries 2option redispatchtimeout connect 5stimeout server 5sstats uri /admin/stats# The public 'www' address in the DMZ
frontend publicbind *:80 name clear ##监听所有端口#bind 192.168.1.10:443 ssl crt /etc/haproxy/haproxy.pem#use_backend static if { hdr_beg(host) -i img }#use_backend static if { path_beg /img /css }default_backend dynamic ##默认使用dynamic后端服务器集群# the application servers go here
backend dynamicbalance roundrobin ##负载均衡算法rr(轮循)server web1 172.25.6.2:80 check inter 1000 ##后端服务器server2server web2 172.25.6.3:80 check inter 1000 ##后端服务器server3

5.server2和server3安装httpd,编辑测试页,开启服务

(1)server2

yum install -y httpd
vim /var/www/html/index.html
/etc/init.d/httpd start

在这里插入图片描述

(2)server3

yum install -y httpd
vim /var/www/html/index.html
/etc/init.d/httpd start

在这里插入图片描述

6.server1开启haproxy服务

/etc/init.d/haproxy start

在这里插入图片描述

7.物理机测试:访问server1出现轮循调度

在这里插入图片描述

8.物理机上浏览器访问http://172.25.6.1/admin/stats出现监控页面,f5可以刷新,f12可以进入控制台

在这里插入图片描述
【F12】

在这里插入图片描述

(1)关闭server2的httpd服务,f5刷新,可以看到监控发生变化

在这里插入图片描述
【web1显示DOWN】
在这里插入图片描述

(2)再次打开server2的httpd服务,刷新后监控恢复正常

在这里插入图片描述
【web1显示ON】
在这里插入图片描述

9.物理机上浏览器访问http://172.25.6.1/monitoruri出现200 OK 说明haproxy服务正常

在这里插入图片描述


推荐阅读
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 利用 Python Socket 实现 ICMP 协议下的网络通信
    在计算机网络课程的2.1实验中,学生需要通过Python Socket编程实现一种基于ICMP协议的网络通信功能。与操作系统自带的Ping命令类似,该实验要求学生开发一个简化的、非标准的ICMP通信程序,以加深对ICMP协议及其在网络通信中的应用的理解。通过这一实验,学生将掌握如何使用Python Socket库来构建和解析ICMP数据包,并实现基本的网络探测功能。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
author-avatar
平凡王子轶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有