简介:
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载。
HAProxy支持两种主要的代理模式:"tcp"也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模式 下,HAproxy仅在客户端和服务器之间转发双向流量。7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求 (request)或者回应(response)里指定内容来控制协议,这种操作要基于特定规则。
特点:
haproxy支持四七层,而LVS是四层应用,nginx是七层应用
支持双机热备,高可用,负载均衡、虚拟主机,应用代理、
基于TCP和HTTP的 图形界面查看信息
服务器节点健康检查功能
一般是lvs在前面做4层,haproxy在后面做七层。
HAproxy配置文件可以分为五部分:
1 2 3 |
|
1 |
|
1.安装
1 2 3 4 5 6 7 8 9 |
|
2.配置
安装完毕后,进入安装目录配置文件,默认情况下目录里是没有.cfg配置文件的,可以回到安装文件目录下将examples下的haproxy.cfg拷贝到usr/local/haproxy下。
cd /usr/local/haproxy
vi haproxy.cfg
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
|
启动haproxy:
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
实现haproxy301域名跳转:
1 |
|
实现haproxy基于URL地址目录做7层跳转
比如根据目录进行过滤转发:
1 2 3 4 5 |
|
实现haproxy基于扩展名做7层跳转:
1 2 |
|
实现haproxy基于user_agent做7层跳转
1 2 3 4 5 6 7 |
|
实现haproxy基于ip和端口过滤
1 2 3 |
|
让haproxy错误页面优雅的显示
1 |
|
基于HTTP的直接IP URL方式的健康检查:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
backup 和allbackups参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
haproxy下的RS无法记录客户端真实ip的问题
1 2 3 4 5 6 7 |
|
###################################################################################
关于haproxy日志输出的问题:
CentoS6.5下HAProxy日志配置详解:
1 2 3 4 5 6 7 8 9 10 11 |
|
vim haproxy.conf(在default处添加如下信息)
1 2 3 4 5 6 |
|
vim /etc/rsyslog.conf(添加如下内容)
1 |
|
vim /etc/sysconfig/rsyslog
1 2 |
|
相关解释说明:
-r: 打开接受外来日志消息的功能,其监控514 UDP端口;
-x: 关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
-m: 修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次"--MARK--"信息;
-h: 默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开,所有接受到的信息都可根据syslog.conf中定义的@主机转发过去.
配置完毕后关闭sellinux然后重启rsyslog和haproxy 即可.
1 |
|
haproxy实现负载均衡的方式:
haproxy + heartbeat
haproxy + keepalive
原文地址:https://www.cnblogs.com/liqing1009/p/10246337.html