HAProxy是什么
HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。
HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,版本更新快速, HAProxy性能很高。
HAProxy的核心功能
- 负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM
Hash/HTTP_HEADER Hash等丰富的负载均衡算法 - 健康检查:支持TCP和HTTP两种健康检查模式
- 会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix
Cookie,以及上述的多种Hash方式实现会话保持 - SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输
- HTTP请求重写与重定向
- 监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态
HAProxy的配置文件共有5个域
- global:用于配置全局参数
- default:用于配置所有frontend和backend的默认属性
- frontend:用于配置前端服务(即HAProxy自身提供的服务)实例
- backend:用于配置后端服务(即HAProxy后面接的服务)实例组
- listen:frontend+backend的组合配置,可以理解成更简洁的配置方法
配置一个负载均衡集群:
- 安装haproxy
yum -y install haproxy
- 打开配置文件:
vim /etc/haproxy/haproxy.cfg
定义后端服务器组
定义一个后端服务器组,webservers
定义这个服务器组算法为:roundrobin (轮询)
定义后端真实服务器(server):
定义前端服务器
定义一个前端服务器 web
定义前端服务器监听地址和端口:
定义默认转发给后端的webservers服务器组
3. 启动haproxy
service haproxy start
关闭防火墙或添加防火墙规则:
service iptables stop
setenforce 0
- 配置web服务器
yum -y install httpd
添加测试页面:
vim /var/www/html/index.html
<h1>web1<h1>
另一台也做相同的动作创建页面:
vim /var/www/html/index.html
<h1>web2<h1>
启动httpd:
service httpd start
关闭防火墙:
service iptables stop
setenforce 0
- 开启统计信息页面
- 定义一个前端服务器:
frontend stats
bind *:8080 #监听的地址和端口
stats uri /stats #访问的uri
stats refresh 10s #页面自动刷新间隔时间
stats auth admin:admin #访问页面的账号和密码
- 重启haproxy
service haproxy restart