热门标签 | 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服务正常

在这里插入图片描述


推荐阅读
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • 本文整理了Java中java.lang.NoSuchMethodError.getMessage()方法的一些代码示例,展示了NoSuchMethodErr ... [详细]
  • 本文介绍了如何使用call_user_func_array函数向Redis中添加有序列表或集合。该函数可以接受一个数组作为参数,第一项是要操作的有序列表或集合的键,后续的项目是排序权重和值的交替。通过该函数,可以方便地向Redis中添加多个元素,并指定它们的排序权重。 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • 原文地址http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/最开始时 ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
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社区 版权所有