概述
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的并发。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。
Haproxy包括以下一些特征:
1. 根据静态分配的cookie 分配HTTP请求
2. 分配负载到各个服务器,同时保证服务器通过使用HTTP Cookie实现连接保持;
3. 当主服务器宕机时切换到备份服务器;允许特殊端口的服务监控;
4. 做维护时通过热配置可以保证业务的连续性,更加人性化;
5. 添加/修改/删除HTTP Request和Response 头;
6. 通过特定表达式Block HTTP请求;
7. 带有用户验证的详细的HTML监控报告;
一、安装Haproxy
从官方网站:http://www.haproxy.org 下载最新版本。
# wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz
# tar zcvf haproxy-1.3.20.tar.gz
# cd haproxy-1.3.20
# make TARGET=linux26 PREFIX=/usr/local/haprpxy
# make install PREFIX=/usr/local/haproxy
二、安装完毕后,进入安装目录创建配置文件
# cd /usr/local/haproxy
# vi haproxy.cfg
global
log 127.0.0.1 local0 debug
maxconn 1024 #每个进程可用的最大连接数
ulimit-n 8000
daemon #使HAProxy进程进入后台运行
nbproc 1#创建1个进程进入deamon模式运行
defaults
log global
mode http
option httplog #定制日志格式
option dontlognull
maxconn 10
#5 seconds for connection to establish on a server
contimeout 5000
#50 seconds for the time we accept to wait for data from the client
clitimeout 50000
#50 seconds for the time we accept to wait for data from the server
srvtimeout 50000
listen boss_web 0.0.0.0:8811
mode http
log global
log 10.1.252.153 local3
maxconn 1000 #每个进程可用的最大连接数
option forwardfor
capture request header Cookie len 200
cookie HAPROXYID insert nocache indirect
balance roundrobin
#option httpchk GET /pboss/check.html#允许用http协议检查server 的健康
server 10_1_252_92_7879 10.1.252.92:7879 check inter 10000 cookie 10_1_252_92_7879
server 10_1_252_153_7989 10.1.252.153:7989 check inter 10000 cookie 10_1_252_153_7989
listen manager 0.0.0.0:8844 #监控管理平台
mode http
balance roundrobin #负载算法,这里采用默认
stats uri /status #监控平台的服务名
stats realm Global/ statistics
stats auth admin:admin #登陆监控平台的验证信息
~启动服务:
# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
重启服务:
# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg -st `cat /usr/local/haproxy/logs/haproxy.pid` (没有换行)
停止服务:
# killall haproxy
三、配置日志
# vim /etc/syslog.conf
在最下边增加
local3.* /var/log/haproxy.log
local0.* /var/log/haproxy.log
重启核心日志服务使配置起效
# service syslog restart
然后就可查看日志了
# tail –f /var/log/harpoxy.log
四、登陆监控平台可以查看到当前负载信息及每个服务器的状态http://10.1.252.153:8844/status
五、通过统一接入地址(proxy)访问应用程序 http://10.1.252.153:8811/pboss
六、模拟server1宕机
将server1 10.1.252.92:7879服务停掉,并登陆监控平台查看status是否为down.
重新登陆http://10.1.252.153:8811/pboss 登陆成功并从可以观察到服务的负载由server1转移到另一台服务器server2上。
七、模拟server2宕机
将server2 10.1.252.153:7879服务停掉,并登陆监控平台查看status是否为down.
重新登陆http://10.1.252.153:8811/pboss 登陆成功并从可以观察到服务的负载由server2转移到服务器server1上。
以上只是利用haproxy一小部分功能,但这些已经可以实现负载的目的,今天就先了解到这里。。。
最后
以上就是迅速期待为你收集整理的构建开源负载均衡架构平台之haproxy的全部内容,希望文章能够帮你解决构建开源负载均衡架构平台之haproxy所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复