HAProxy简介
HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件是一款具备高并发(万级以上)、高性能的TCP和HTTP负载均衡器支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计。
haproxy基本环境配置
安装nginx
配置nginx默认发布文件
启动服务
测试(注意三台机子都是net)
haproxy负载均衡的实现
负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展
在haproxy主机上安装haproxy
查看配置文件
修改配置文件
前端和后端
重启配置
测试
后端检测
将两个合并(前端后端写一起)
测试(前端后端写一起效果一样)
haproxy的日志分离
子进程中只有一个线程
查看
自定义日志
打开udp
server配置
测试
断掉两台web
安装阿帕奇
端口改为8080(backup---sorryserver的端口)
重启配置
修改配置
维护不可用状态
下线指定realserver
网页重定向
热更新
安装cocat工具(动态调整参数)
查看帮助
查看当前权重
修改权重
下线
开启
算法
HAProxy通过固定参数 balance 指明对后端服务器的调度算法。
balance参数可以配置在listen或backend选项中。
HAProxy的调度算法分为静态和动态调度算法。
有些算法可以根据参数在静态和动态算法中相互转换。
基于权重的轮询调度
first
在多台主机中执行死循环
roundrobin
leastconn
source
uri
url_param
hdr
状态页
backend server信息
基于cookie的会话保持
cookie value:为当前server指定cookie值,实现基于cookie的会话黏性,相对于基于 source 地址hash 调度算法对客户端的粒度更精准,但同时也加大了haproxy负载,目前此模式使用较少,已经被session共享服务器代替
ip透传
web服务器中需要记录客户端的真实IP地址,用于做访问统计、安全防护、行为分析、区域排行等场景
下载阿帕奇
修改配置文件
改为tcp
测试
访问控制列表应用(ACL)
访问控制列表ACL,Access ControlLists)
是一种基于包过滤的访问控制技术
它可以根据设定的条件对经过服务器传输的数据包进行过滤(条件匹配)即对接收到的报文进行匹配和过滤,基于请求报文头部中的源地址、源端口、目标地址、目标端口、请求方法、URL、文件后缀等信息内容进行匹配并执行进一步操作,比如允许其通过或丢弃。
定义acl匹配规范
利用acl做动静分离
编辑配置文件
测试
符合
不符合
基于文件后缀实现动静分离
创建目录
测试
基于访问路径实现动静分离
自动定义错误页面内容
先停止服务
测试
错误网页重定向
四层负载
安装数据库
修改配置
启动
查看
建立远程登录(两台机子都需要)
查看端口号
成功登录
https实现
haproxy可以实现https的证书安全,从用户到haproxy为https,从haproxy到后端服务器用http通信但基于性能考虑,生产中证书都是在后端服务器比如nginx上实现
制作证书
查看证书
修改配置参数
查看
全站加密
end!!