安装及配置

haproxy

负载均衡

负载均衡(Load Balance,简称LB)是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展
  • Web服务器的动态水平扩展
    • 对用户无感知
  • 增加业务并发访问及处理能力
    • 解决单服务器瓶颈问题
  • 节约公网IP地址
    • 降低IT支出成本
  • 隐藏内部服务器IP
    • 提高内部服务器安全性
  • 配置简单
    • 固定格式的配置文件
  • 功能丰富
    • 支持四层和七层,支持动态下线主机
  • 性能较强
    • 并发数万甚至数十万
典型应用场景 四层:Redis、Mysql、RabbitMQ、Memcache等 七层:Nginx、Tomcat、Apache、PHP 、图片、动静分离、API等

HAProxy介绍

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配置参数
说明
#锁定运行目录
#以守护进程运行
#运行haproxy的用户身份
#开启的haproxy进程数,与CPU保持一致
#指定每个haproxy进程开启的线程数,默认为每个进程一个线程
#绑定haproxy 进程至指定CPU,第一个工作进程绑定在第0个CPU,CPU序列从0开始
#每个haproxy进程的最大并发连接数
#SSL每个haproxy进程ssl最大连接数
#每个进程每秒最大连接数
#后端server状态check随机提前或延迟百分比时间,建议2-5(20%-50%)之间
#指定pid文件路径
注: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方法,可用于实现更多应用层检测功能
后端服务器状态监测及相关配置
frontend/ backend 配置案例
Proxies配置- listen

小结

1、安装方式及版本选择 2、配置段global、default、frontend、backend、listen 3、默认是1个父进程,1个子进程,1个进程提供服务,可根据实际需求更改,看CPU核心数,一般一个子进程一个线程可以满足当前需要
Loading...