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。