安装及配置
haproxy
负载均衡
负载均衡(Load Balance,简称LB)是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展
- Web服务器的动态水平扩展
- 对用户无感知
- 增加业务并发访问及处理能力
- 解决单服务器瓶颈问题
- 节约公网IP地址
- 降低IT支出成本
- 隐藏内部服务器IP
- 提高内部服务器安全性
- 配置简单
- 固定格式的配置文件
- 功能丰富
- 支持四层和七层,支持动态下线主机
- 性能较强
- 并发数万甚至数十万
典型应用场景
四层:Redis、Mysql、RabbitMQ、Memcache等
七层:Nginx、Tomcat、Apache、PHP 、图片、动静分离、API等
HAProxy介绍
官网:http://www.haproxy.org https://www.haproxy.com
官网参考文档 https://cbonte.github.io/haproxy-dconv/http://cbonte.github.io/haproxy-dconv/2.2/configuration.html
HAProxy: 是法国开发者Willy Tarreau开发的一个开源软件,是一款具备高并发、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计
LB Cluster:(后面可根据示例来决定)
四层:lvs, nginx(stream模式且nginx1.9.0或更新版本),haproxy(mode tcp)
七层:http: nginx(http), haproxy(mode http), httpd
HAProxy功能
HAProxy是TCP / HTTP反向代理服务器,尤其适合于高可用性高并发环境
- 可以针对HTTP请求添加cookie,进行路由后端服务器
- 可平衡负载至后端服务器,并支持持久连接
- 支持基于cookie进行调度
- 支持所有主服务器故障切换至备用服务器
- 支持专用端口实现监控服务
- 支持不影响现有连接情况下停止接受新连接请求
- 可以在双向添加,修改或删除HTTP报文首部
- 支持基于pattern实现连接请求的访问控制
- 通过特定的URI为授权用户提供详细的状态信息
和LVS相似,用户请求HAPROXY在到RS服务器
HAProxy安装
配置段说明
global:全局配置段 http://cbonte.github.io/haproxy-dconv/2.2/configuration.html#3
进程及安全配置相关的参数
性能调整相关参数
Debug参数
proxies:代理配置段
defaults:为frontend, backend, listen提供默认配置
frontend:前端,相当于nginx中的server {}
backend:后端,相当于nginx中的upstream {}
listen:同时拥有前端和后端,适用于一对一环境
global配置参数
说明
Proxies配置
说明
defaults [<name>\]frontend <name>backend <name>listen <name>注:name字段只能使用”-”、”\_”、”.”、和”:”,并且严格区分大小写,例如:Web和web是完全不同的两组服务器
Proxies配置- defaults
defaults 配置参数
说明
#当server Id对应的服务器挂掉后,强制定向到其他健康的服务器
#当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
#开启会话保持
#开启IP透传
#默认工作类型
#连接到一台后端server的最长时间
#与客户端的最长空闲时间
#等待服务端的超时时长
#session 会话保持时间
#对后端服务器的检测超时时间
Proxies配置- frontend配置参数
bind:指定HAProxy的监听地址,可以是IPV4或IPV6,可以同时监听多个IP或端口,可同时用于listen字段中
Proxies配置- backend配置参数
mode http/tcp/health #指定负载协议类型
option #配置选项
server #定义后端real server
注意:option后面加httpchk,smtpchk, mysql-check, pgsql-check,ssl-hello-chk方法,可用于实现更多应用层检测功能
后端服务器状态监测及相关配置
参数
说明
addr IP
port num
inter num
fall num
rise num
weight
backup
disabled
redirect prefix https://final233.github.io/
maxconn <maxconn>backlog <backlog>frontend/ backend 配置案例
Proxies配置- listen
小结
1、安装方式及版本选择
2、配置段global、default、frontend、backend、listen
3、默认是1个父进程,1个子进程,1个进程提供服务,可根据实际需求更改,看CPU核心数,一般一个子进程一个线程可以满足当前需要
Loading...
keepalived