利用keepalived+haproxy实现LVS负载均衡高可用集群

实验环境
准备四台可以互相ping通的主机,其中server1,server2作为调度器server3,server4作为服务器,配置好yum仓库,关闭火墙和selinux
实验思路
用keepalived来实现服务的高可用,haproxy作为调度器
安装haproxy

yum install haproxy -y

修改haproxy配置文件

vim /etc/haproxy/haproxy.cfg

利用keepalived+haproxy实现LVS负载均衡高可用集群_第1张图片
修改日志文件

vim /etc/rsyslog.conf

在这里插入图片描述
利用keepalived+haproxy实现LVS负载均衡高可用集群_第2张图片

启动haproxy

systemctl start haproxy

测试
利用keepalived+haproxy实现LVS负载均衡高可用集群_第3张图片
关闭server4的httpd
利用keepalived+haproxy实现LVS负载均衡高可用集群_第4张图片
修改配置文件
利用keepalived+haproxy实现LVS负载均衡高可用集群_第5张图片
当以path_beg参数开头以path_end参数结尾优先访问static服务
在这里插入图片描述
在server4默认发布目录下创建images目录,并且放入一个jpg格式文件
测试
利用keepalived+haproxy实现LVS负载均衡高可用集群_第6张图片
利用keepalived+haproxy实现LVS负载均衡高可用集群_第7张图片
利用keepalived+haproxy实现LVS负载均衡高可用集群_第8张图片
编辑配置文件设置黑名单
在这里插入图片描述
测试
利用keepalived+haproxy实现LVS负载均衡高可用集群_第9张图片
这样的界面显然是很不友好的,可以将报错转入另一个网址
当黑名单IP访问时会转入百度页面
在这里插入图片描述
设置上传
利用keepalived+haproxy实现LVS负载均衡高可用集群_第10张图片
在server4上编辑上传界面

vim /var/www/html/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>

设置上传参数

vim 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"] . "
"
; } else { echo "Upload: " . $_FILES["file"]["name"] . "
"
; echo "Type: " . $_FILES["file"]["type"] . "
"
; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
"
; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
"
; 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"; } ?>

建立上传目录,并赋予权限

mkdir /var/www/html/upload
chmod 777 /var/www/html/upload

测试
利用keepalived+haproxy实现LVS负载均衡高可用集群_第11张图片
上传测试
选择上传文件
利用keepalived+haproxy实现LVS负载均衡高可用集群_第12张图片
开始上传
利用keepalived+haproxy实现LVS负载均衡高可用集群_第13张图片
上传成功
利用keepalived+haproxy实现LVS负载均衡高可用集群_第14张图片
查看
在server4的/var/www/html/upload
在这里插入图片描述
编辑keepalived配置文件
利用keepalived+haproxy实现LVS负载均衡高可用集群_第15张图片
利用keepalived+haproxy实现LVS负载均衡高可用集群_第16张图片
编辑keepalived和haproxy绑定脚本

vim /opt/check_haproxy
#!/bin/bash
systemctl status haproxy
if [ "$?" -ne "0" ]
then
        systemctl restart haproxy
        if [ "$?" -ne "0" ]
        then
                systemctl stop keepalived
        fi
fi
chmod +x /opt/check_haproxy 

将配置好的文件发送至第二个调度器节点

scp /etc/haproxy/haproxy.cfg server2:/etc/haproxy/
scp /etc/keepalived/keepalived.conf server2:/etc/keepalived/
scp /opt/check_haproxy.sh server2:/opt/

在第二个节点修改keepalived配置文件
利用keepalived+haproxy实现LVS负载均衡高可用集群_第17张图片

利用keepalived+haproxy实现LVS负载均衡高可用集群_第18张图片
启动服务

systemctl start haproxy
systemctl start keepalived

测试:关闭第一个节点haproxy,资源会被第二个节点接管
利用keepalived+haproxy实现LVS负载均衡高可用集群_第19张图片

你可能感兴趣的:(学习,笔记,linux,负载均衡,运维)