Haproxy安装及配置详解与算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HAProxy安装及配置详解与算法

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的并发。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy 运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整

合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。

其支持从4层至7层的网络交换,即覆盖所有的TCP协议。就是说,Haproxy 甚至还支持 Mysql 的均衡负载。如果说在功能上,能以proxy反向代理方式实现 WEB均衡负载,这样的产品有很多。包括Nginx,ApacheProxy,lighttpd,Cheroke 等。

但要明确一点的,Haproxy 并不是 Http 服务器。以上提到所有带反向代理均衡负载的产品,都

清一色是 WEB 服务器。简单说,就是他们能自个儿提供静态(html,jpg,gif..)或动态(php,cgi..)文件的传输以及处理。而Haproxy 仅仅,而且专门是一款的用于均衡负载的应用代理。其自身并不能提供http服务。

但其配置简单,拥有非常不错的服务器健康检查功能还有专门的系统状态监控页面,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。自1.3版本开始还引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend。

1.安装

官方版本获取地址:http://haproxy.1wt.eu/,不过官方页面已经打不开了,请自行搜索!

上面中的26是linux系统内核,通过命令# uname -a可查看,我使用的是CentOS

# tar xzvf haproxy-1.4.24.tar.gz

# cd haproxy-1.4.24

# make TARGET=linux26 PREFIX=/usr/local/haproxy

# make install PREFIX=/usr/local/haproxyb

2.配置

安装完毕后,进入安装目录配置文件,默认情况下目录里是没有.cfg配置文件的,可以回到安装文件目录下将examples下的haproxy.cfg拷贝到usr/local/haproxy下。

# cd /usr/local/haproxy

# vi haproxy.cfg

默认文件内容如下:(注意!!标示开始的为默认的配置文件没有的)

CODE:

# this config needs haproxy-1.1.28 or haproxy-1.2.1

####################全局配置信息####################################

##########参数为进程级,通常和操作系统相关##########################

global

log 127.0.0.1 local0

log 127.0.0.1 local1 notice

#log loghost local0 info #日志

maxconn 4096 #默认最大连接数

chroot /usr/share/haproxy #chroot运行路径

uid 99 #所属运行的用户uid

gid 99 #所属运行的用户组

daemon #以后台形式运行haproxy

!!nbproc 2 #进程数量(可以设置多个进程提高性能)

!!pidfile /usr/local/haproxy/haproxy.pid #haproxy的pid存放路径,启动进程的用户必须有权限访问此文件

#debug #

#quiet

####################默认的全局设置####################################

##########参数可以被利用配置到frontend,backend,listen组件#############

defaults

log global

mode http #所处理的类别 (#7层 http;4层tcp )

option httplog #日志类别http日志格式

!!option httpclose #每次请求完毕后主动关闭http通道

option dontlognull #不记录健康检查的日志信息

!! option forwardfor #后端服务器需要获得客户端真实ip需配置的参数,可从Http Header中获得ip !!option redispatch #serverId对应的服务器挂掉后,强制定向到其他健康的服务器

!!option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的连接

!!stats refresh 30 #统计页面刷新间隔

retries 3 #3次连接失败就认为服务不可用,也可以通过后面设置

redispatch #当serverid对应的服务器挂掉后,强制定向到其他健康服务器!!balance roundrobin #默认的负载均衡的方式,轮询方式

!!balance source #默认的负载均衡的方式,类似nginx的ip_hash

!!balance leastconn #默认的负载均衡的方式,最小连接

maxconn 2000 #最大连接数

contimeout 5000 #连接超时

clitimeout 50000 #客户端超时

srvtimeout 50000 #服务器超时

!! timeout check 2000 #心跳检测超时

####################监控页面设置####################################

listen appli1-rewrite 0.0.0.0:10001

cookie SERVERID rewrite

相关文档
最新文档