HAProxy介绍
HAProxy: 是法国人Willy Tarreau开发的一个开源软件,是一款应对客户端10000以上的同时连接的高性能的TCP和 HTTP负载均衡器。其功能是用来提供基于cookie的持久性, 基于内容的交换,过载保护的高级流量管制,自动故障切换 ,以正则表达式为基础的标题控制运行时间,基于Web的报表,高级日志记录以帮助排除故障的应用或网络及其他功能。
相关概念
代理的作用
正向代理,反向代理
代理服务器,可以提供缓存功能加速客户端访问,同时可以对缓存数据进行有效性检查
内容路由:根据流量以及内容类型将请求转发至特定的服务器
转码器:支持压缩功能,将数据以压缩形式发送给客户端
缓存的作用
减少访冗余内容传输
节省带宽,缓解网络瓶颈
降低了对原始服务器的请求压力
降低了传输延迟
负载均衡集群:
四层:
lvs, nginx(stream),haproxy(mode tcp)
七层:
http: nginx(http, ngx_http_upstream_module), haproxy(mode http), httpd, ats, perlbal, pound…
HAProxy功能
HAProxy是TCP / HTTP反向代理服务器,尤其适合于高可用性环境
可以针对HTTP请求添加cookie,进行路由后端服务器
可平衡负载至后端服务器,并支持持久连接
支持基于cookie进行调度
支持所有主服务器故障切换至备用服务器
支持专用端口实现监控服务
支持不影响现有连接情况下停止接受新连接请求
可以在双向添加,修改或删除HTTP报文首部
支持基于pattern实现连接请求的访问控制
通过特定的URI为授权用户提供详细的状态信息
一:简单前端调度实现
利用四台虚拟机实现简单的前端轮询调度。
一台客户端,linux3为haproxy调度器,linux1和linux2两台RS
首先linux3调度器下载haproxy
编辑haproxy配置文件/etc/haproxy/haproxy.cfg
默认设置不做修改
两台RS上下载httpd
测试
监控页面
二 动静分离
编辑haproxy配置文件/etc/haproxy/haproxy.cfg
上层注释掉
后面做更改只需重新加载服务
下载httpd将端口改为8000
linux2为静态服务器,存放一张jpg结尾的图片
测试:172.25.66.3可以看到访问jpg结尾的访问到了linux2的发布目录中
linux1 和linux3为动态 linux1为主
三 haproxy日志
/etc/rsyslog.cong
去掉注释
定义日志local2的级别和路径
四 重定向
编辑haproxy配置文件/etc/haproxy/haproxy.cfg
vim /etc/hosts 解析
测试:westos.org 会跳转到www.westos.org下面(这里调用的函数是app,app函数下就是指向linux1)
五:实现读写分离
linux1 和 linux2编写php文件如下
先下载php
/var/www/html/upload(777添加权限允许写入)
两台RS配置一样 并且启动httpd
/etc/init.d/httpd restart
编辑haproxy配置文件/etc/haproxy/haproxy.cfg
写进app—->linux1—->/var/www/html/upload(777添加权限允许写入)—–>upload_file.php(编辑写入信息要求比如图片规则)
访问进入谁的页面就用谁写不过无论访问谁最终写入还是write—>app—>linux1
要写入文件首先访问界面就要是能够写入文件页面
安装php用php语言写
访问haproxy上传文件—->sbmmit—>linux1/upload查看
查看