1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > HAproxy七层负载均衡——访问控制 动静分离 读写分离实现过程详解

HAproxy七层负载均衡——访问控制 动静分离 读写分离实现过程详解

时间:2019-04-22 22:26:41

相关推荐

HAproxy七层负载均衡——访问控制 动静分离 读写分离实现过程详解

实验环境

一、访问控制

1.用户密码访问

(1)编辑配置文件

设置用户和密码以及刷新时间

vim haproxy.cfg /etc/init.d/rsyslog restartstats authadmin:peng##用户名为admin,密码为pengstats refresh 5s##刷新时间为5s

修改内容如下

(2)测试:浏览器访问需要输入密码,密码输入正确后可以访问

(3)查看日志看刷新时间

<1>编辑日志服务的配置文件,打开UDP接口,创建haproxy的日志文件,重启服务

vim /etc/rsyslog.conf /etc/init.d/rsyslog restart

<2>查看日志文件,可以看到5秒刷新一次

cat /var/log/haproxy.log

2.黑名单

(1)编辑配置文件,重启服务

vim haproxy.cfg /etc/init.d/haproxy reload

(2)物理机访问:出现403报错

curl 172.25.6.1

3.错误页面重定向

(1)编辑配置文件,重启服务

vim haproxy.cfg /etc/init.d/haproxy reload

(2)编辑httpd配置文件修改httpd端口,编辑测试页。开启服务

yum install -y httpdvim /etc/httpd/conf/httpd.conf

(3)物理机测试:物理机访问没有结果,浏览器访问错误页面重定向到server1

二、动静分离

在下面的实验中我们将server2设置为动态资源的服务器,server3设置为静态资源的服务器

(1)编辑配置文件

vim /etc/haproxy/haproxy.cfg /etc/init.d/haproxy restart

(2)编辑配置文件,设置动静分离,退出保存后重启服务

vim /etc/haproxy/haproxy.cfg /etc/init.d/haproxy restart

(3)server3安装php,编辑php默认测试页,重启httpd

yum install php -y

(4)打开浏览器测试:

三、读写分离

(1)编辑配置文件,部分内容如下:

vim /etc/haproxy/haproxy.cfg /etc/init.d/haproxy restart

(2)server2在/var/www/html目录下创建两个文件和一个upload目录(因为我们在设置时,规定写如static服务器,即server2),给他们满权限

chmod 777 upload

(3)在server2上重写发布文件

vim 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

<?phpif ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000000)){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";}?>

(4)server2安装php,并重启httpd服务

yum install -y php/etc/init.d/httpd restart

(5)将这三个文件和目录传给server3

scp -r /var/www/html/* server3:/var/www/html/

(6)server3查看,并将其他的文件删除

(7)编辑index.php文件,方便观察给submit前添加内容,重启服务

vim index.php/etc/init.d/httpd restart

(8)打开浏览器测试:

访问172.25.22.1出现的页面中出现【server3 172.25.6.3】,说明读到的是server3,上传图片,可以在server2的uopload目录下看到。

上传成功

在server3的upload目录里查看

在server2的upload目录里查看

通过上述的实验证实了,用户在访问时访问了server3(读操作),当进行资源上传时,内容上传到了server2(写操作),由此实现了读写分离

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。