当前位置: 代码迷 >> 综合 >> haproxy实现7层的负载均衡[haproxy+pacemaker]
  详细解决方案

haproxy实现7层的负载均衡[haproxy+pacemaker]

热度:2   发布时间:2023-12-14 18:13:26.0

haproxy

  • 1. 前提环境的设定
  • 2. haproxy的配置及实验效果
    • 2.1 安装
    • 2.2 测试是否能访问
    • 2.3 设置haproxy支持的最大文件数
    • 2.4 设置日志信息的存放
    • 2.4 设置访问密码
    • 2.5 source模式
    • 2.6 default_backend和use_backend的使用
    • 2.7 设置黑名单及自动跳转网址
    • 2.8 redirect location默认访问地址
    • 2.9 acl write method POST | PUT
  • 3. haproxy+pacemaker高可用
    • 3.1 pacemaker的搭建(集群,没有主辅之分)
      • 3.1.1 备用机前期的一些简单设置
      • 3.1.2 pacemaker的配置
      • 3.1.3 stonith的设置(fencing设备)

haproxy官网

1. 前提环境的设定

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

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

在这里插入图片描述

2. haproxy的配置及实验效果

4层负责数据转发,7层负责策略文件
在这里插入图片描述

2.1 安装

- 安装haproxy的主机上不要打开apache服务,不然80端口会冲突。

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

2.2 测试是否能访问

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果有一个RS挂掉后,也就是apache服务关掉后,就只能访问到一个RS。

2.3 设置haproxy支持的最大文件数

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

2.4 设置日志信息的存放

vim /etc/haproxy/haproxy.cfg
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

2.4 设置访问密码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

效果

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

2.5 source模式

- 介绍- 	源地址散列调度(Source Hashing Scheduling)算法正好与目标地址- 散列调度算法相反,它根据请求的源 IP 地址,作为散列键(Hash Key)从静- 态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送- 到该服务器,否则返回空。

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

效果

在这里插入图片描述

2.6 default_backend和use_backend的使用

- 配置文件解释
-	default_backenddefault_backend <backend>use_backend <static>在没有匹配的”use_backend”规则时为实例指定使用的默认后端,因此,其不可应用于backend区段。在”frontend”和”backend”之间进行内容交换时,通常使用”use-backend”定义其匹配规则;而没有被规则匹配到的请求将由此参数指定的后端接收。

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

在这里插入图片描述

效果

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

2.7 设置黑名单及自动跳转网址

在这里插入图片描述

在这里插入图片描述
效果

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

2.8 redirect location默认访问地址

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

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

2.9 acl write method POST | PUT

- (读的时候是默认的app,在server2上,写的时候的在server3上,
- 数据存储在server3上,server2和server3上需要同样的文件,实现读写分离)

在这里插入图片描述
在这里插入图片描述
文件的下载和设置(主要读取php文件,所以下在php软件)

在这里插入图片描述
在这里插入图片描述
php文件需要server2和server3都有,server3作为测试。将2的图片传到3下(php文件程序)
在这里插入图片描述
在这里插入图片描述
俩个php文件内容
index.php

<html>
<body><form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form></body>
</html>

upload_file.php

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 2000000)){
    if ($_FILES["file"]["error"] > 0){
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}else{
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";echo "Type: " . $_FILES["file"]["type"] . "<br />";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";if (file_exists("upload/" . $_FILES["file"]["name"])){
    echo $_FILES["file"]["name"] . " already exists. ";}else{
    move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);echo "Stored in: " . "upload/" . $_FILES["file"]["name"];}}}
else{
    echo "Invalid file";}
?>

http://172.25.13.100/在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

效果

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

3. haproxy+pacemaker高可用

3.1 pacemaker的搭建(集群,没有主辅之分)

3.1.1 备用机前期的一些简单设置

在这里插入图片描述

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

测试
在这里插入图片描述

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

3.1.2 pacemaker的配置

下载pacemaker有俩个包需要另一个仓库才可以全部安装成功。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

配置pacemaker
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
stonith设备后面介绍
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

出错可以删除资源
在这里插入图片描述
standy节点的使用
在这里插入图片描述
在这里插入图片描述
关闭集群指定节点的方法

在这里插入图片描述
在这里插入图片描述
禁止掉haproxy服务,配置自动自动启动haproxy服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
删除vip之后看效果
在这里插入图片描述

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

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

关掉haproxy服务之后,刚才设置的30s自动启动

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

down掉网卡之后

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

在这里插入图片描述

破坏了内核后,c表示crush,破坏。
在这里插入图片描述

在这里插入图片描述

只能重启server4这台主机

在这里插入图片描述

3.1.3 stonith的设置(fencing设备)

- 网卡坏了,内核坏了也不可能手动去重启网卡,重启电脑。所以需要设置stonith。
- 
- 	stonith相当于电源交换机,插排,可以发信息告诉stonith需要断开哪个电源(直接断电),
- 开启哪个电源,实现了远程自动开关机。

在这里插入图片描述
- 小知识:英特尔支持的虚拟化技术是kvm,adm系统支持的是svm
- 没有kvm和svm之前使用的是qemu技术,半虚拟化。
-
- kvm解决的是cpu和memory的问题,而qemu结局的是剩下的问题。一起组成了一个完整的虚拟机。

在这里插入图片描述

真机的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

在这里插入图片描述

server1和server4上面的操作

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

开始配置stonith
在这里插入图片描述

在这里插入图片描述

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

检测配置了stonith之后的效果

- 可以实现摧毁内核,然后自动重启。
- 1. 注意点:如果stonith设备老是自动停止,可能是真机的防火墙和selinux设置问题。
-    可以关闭防火墙,将selinux配置文件改为disabled。

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

  相关解决方案