目录
- 一、haproxy
- 二、haproxy负载均衡
-
- 1.安装配置haproxy
- 2.图片访问锁定
- 3.权重
- 4.访问黑名单
- 三、结合PHP
一、haproxy
haproxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案;
lvs工作在四层、仅负责分发请求作用,负载均衡性能最强,Lvs实现负载均衡可结合keepalived进行后端健康检测;
nginx工作在7层,针对http应用做一些策略配置,可以检测后端端口故障,最大的优点是并发量高,且支持二次开发,商用价值高。
注:haproxy配置文件修改后,必须使用reload,不能restart,否则会使连接断开
二、haproxy负载均衡
1.安装配置haproxy
实验环境:
server1 172.25.36.1 作为haproxy服务器及集群管理服务器;
server2 172.25.36.2 、server3 172.25.36.3 负载均衡(后端服务器)
server4 172.25.1.4 集群管理服务器
server1安装配置haproxy
haproxy主配置目录在/etc/haproxy
sysctl -a查看内核资源,文件最多10w(根据内存变更);
free -m #查看系统内存使用情况(宿主机)
编写/etc/security/limits.conf 配置文件,修改操作系统资源使用限制 haproxy用户 - 软限(可以超过)和硬限,设定最大打开文件4096 (即改即生效)
编写配置文件vim /etc/haproxy/haproxy.cfg;
加上监控:defaults中加入stats ,虚拟目录/
修改端口:80
设定server2、server3提供服务,调度方式为轮叫
设定完毕后重启服务,查看日志
查看haproxy服务的默认端口为80(注意要关闭server1的httpd,否则会端口冲突)
此时在浏览器访问server1的IP时,由server2和server3提供服务,点击刷新图标可看到效果
测试监控项:
firefox:http://172.25.36.1/status
若关闭server2的httpd服务
可看到监控项中的app1变红,表示serve2 down掉,不能提供服务(自带健康检测)
2.图片访问锁定
编辑配置文件
path_beg:路径开头;
path_end:结尾;
表示以指定的路径开头的文件会被调度到某一个后端;
(如果上传的是指定类型的图片,则由server3提供服务,但默认访问的是server2)
监控图如下
此时server3的共享目录下有一个.jpg图片
访问如下网址的图片(server3提供服务)
查看日志
3.权重
当server2、server3权重都为1时
轮叫
设定server2的权重为2
设定172.25.36.1:8080(server1)为备机
修改server1的httpd服务端口
当访问server1的8080端口时,会看到其发布页面的内容
监控图如下
此时由三台主机提供轮叫
当停止server2和server3的httpd服务时,只留下备机server1提供服务
4.访问黑名单
编辑配置文件,加入认证策略,只有用户名是admin,密码是westos的用户才能访问
编辑文件/etc/rsyslog.conf:加入haproxy的日志信息!
同时打开UDP端口,修改完毕之后,systemctl restart rsyslog.service
访问测试
查看日志,可以看到当本机访问172.25.36.1时,各服务器对其响应情况
继续编辑文件,写入黑名单访问策略,当真机访问server1时,被拒绝
若是不想出现访问失败的界面,而是想让客户访问另外一个网页,需要重定向,把错误403定向到一个网页 (server1的Apache发布页面,此时httpd用8080端口,避免和haproxy端口冲突)
给server1的发布页面写入内容
测试成功
-I 参数则只显示 http response 的头信息。
将前面的错误403重定向注释掉,设置新的重定向,当真机访问server1时,重定向到百度
再次访问网页172.25.36.1时,跳转到了百度
三、结合PHP
修改haproxy中的配置文件 /etc/haproxy/haproxy.cfg,设定以.php结尾的转到访问static模块,即由server3提供服务
在server3上安装php ,编辑php默认发布页面
测试成功