- 浏览: 3470187 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wanglf1207:
EJB的确是个不错的产品,只是因为用起来有点门槛,招来太多人吐 ...
weblogic-ejb-jar.xml的元素解析 -
qwfys200:
总结的不错。
Spring Web Flow 2.0 入门 -
u011577913:
u011577913 写道也能给我发一份翻译文档? 邮件437 ...
Hazelcast 参考文档-4 -
u011577913:
也能给我发一份翻译文档?
Hazelcast 参考文档-4 -
songzj001:
DbUnit入门实战
什么是ha-proxy
HA-Proxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案,特别适用于那些负载
特大的web站点。运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,
同时可以保护你的web服务器不被暴露到网络上
HA-Proxy相比 LVS 的使用要简单很多,功能方面也很丰富。 HA-Proxy 可以在 4 , 7 两层作负载均衡, 4 层大多用于邮件服务器、内部协议通信服务器等作负载均衡, 7 层用于 Http 分析负载转发。
在 HA-Proxy 官方网站可以下载配置说明文档 (configuration.txt) 和架构文件 (architecture.txt) 作为参考。具体的使用细节不做太多介绍,这里主要通过具体的配置来大致说一下 HA-Proxy 的结构。
HA-Proxy
配置中分成四部分内容,当然这些组件不是必选的,可以根据需要选择部分作为配置。
Defaults
组件是配置默认参数的,这些参数可以被利用配置到
frontend
,
backend
,
listen
组件中(当这些组件某些参数没有被配置而在
Defaults
中配置了)。
Frontend
组件是接收请求的前端虚拟节点,就类似于
LVS
中配置了
VIP
的
Load Balancer
,
Frontend
可以直接指定后端指向那一个
backend(
可动态选择
)
。
Backend
是后端服务集群的配置,类似于
LVS
中的那些
Real Server
,一个
Backend
对应一个或者多个实体服务器。
Listen
是
Frontend
和
Backend
的组合体,可以直接定义一个类似于
JBoss
的
Server Farm
。还有一些默认的配置可以通过在配置文件中配置或者在命令行中作为参数输入。
安装haproxy
tar zxvf haproxy-1.4.8.tar.gz
cd haproxy-1.4.8
uname -a //查看linux内核版本
make TARGET=linux26 PREFIX=/usr/local/haproxy #TARGET是内核版本,2.6就写作26
make install PREFIX=/usr/local/haproxy
执行/usr/local/haproxy目
录下执行haproxy,如
果如果有使用说明出现表示已经安装正常。
使用时使用haproxy -f 配置文件地址
HA-Proxy
日志配置说明:
acl app1 url_sub -i app=app1 //在请求url
中含app=app1,则此策略为true,否则为false
acl app2 url_sub -i app=app2 //在请求url中含app=app2,则此策略为true,否则为false
acl invalid_req url_sub -i app= //在请求url中若包含app=,则此策略为true,否则为false
acl stat_req url_dir -i admin //在请求url中admin作为部分路径时,则此策略为true,否则为false
block if !invalid_req !stat_req //block表示阻止,返回403状态码,表示当前url请求既不满足invalid_req策略也不满足stat_req策略
use_backend app1_server if app1 //如果满足app1策略,使用app1_server做为后端集群
use_backend app2_server if app2 //如果满足app2策略,使用app2_server做为后端集群
default_backend app1_server //app1_server作为默认集群
backend app1_server //后端接点定义
mode http
balance roundrobin //负载均衡策略配置
cookie SERVERID //允许插入serverid到cookieid中,serverid后面要定义
server app1_test1 192.168.1.101:80 cookie 1 check fall 5 weight 1
//真实服务器配置定义cookie1 表示serverid为1,check表示需要状态检查,fall 5
表示失败5次就认为服务器不可用,weight表示权重
server app1_test2 192.168.1.102:80 cookie 1 check fall 5 weight 1
backend app2_server //后端接点定义
mode http
server app2_test 192.168.1.103:80 check fall 5
完成配置后,执行
haproxy –f haproxy.cfg
,后台进程就可以启动了,然后在浏览器中输入刚才定义的状态检查地址http://ip:8181/admin?stats
可以看到结果.
HA-Proxy
可以收集本机及其他后端服务器日志,但是需要在
Load Balancer
上作一些配置。
首先修改
/etc/sysconfig/syslog
文件,将
SYSLOGD_OPTIONS="-m 0”
修改为
SYSLOGD_OPTIONS="-m 0 -r -x"
,支持收集远程服务器日志。
然后修改
/etc/syslog.conf
,增加如下语句:
#add by haproxy
local0.*
/home/admin/tools/haproxy-1.3.17/haproxy.log
// haproxy.log
地址代表了需要存储日志的地址
执行
service syslog restart
,重新启动系统日志器
最后就是在
HA-Proxy
的配置中增加日志输出(具体可以参考后面的配置文件说明)
HA-Proxy
配置文件说明:
下面的配置文件简单来说就是配置了根据请求参数的不同,将请求分别定向到后端的app1集群和app2集群。
具体配置文件
(haproxy.cfg)
如下:
global //全局设置
log 127.0.0.1 local0 info //日志输出配置,所有日志都记录在本机,通过local0输出,我们前面已经配置了local0
maxconn 51200 //最大连接数
user www //执行ha-proxy的用户
group www //执行ha-proxy的组
pidfile /var/run/haproxy.pid //pid 文件存放的位置
nbproc 2 //启动2个ha-proxy实例
daemon //以后台形式运行ha-proxy
#debug
#quiet
defaults //默认设置
mode http //默认采用http模式,可配置成tcp作4层消息转发
option httplog //采用httplog
retries 3 //3次连接失败就认为服务器不可用,主要通过后面的check检查
maxconn 2000 //最大连接数
contimeout 5000 //连接超时时间
clitimeout 5000 //客户端连接超时时间
srvtimeout 5000 //服务器端连接超时时间
stats uri /admin?stats //服务器状态查看页面
stats auth bikong0411:bikong0411 //服务器状态查看页面身份验证,可以不设置
option httpchk HEAD /welcome.html HTTP/1.1 //服务器状态设置,这里是向每一个后端服务器请求/welcome.html来检测健康状况
frontend http-in //前端节点定义
bind :8181 //虚拟服务器监听8181端口,也可以写作ip:port这种形式
mode http
log global
opention httplog
opention httpclose //每次请求完毕后主动关闭http通道,ha-proxy不支持keep-alive,只能模拟这种模式的实现
opention forwardfor //如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip
capture request header Host len 20 //此配置和以下类似都是抓取http请求的参数记录到日志的
capture request header User-Agent len 10
capture request header Referer len 20
capture request header Content-Length len 10
//控制策略设置
发表评论
-
collectd
2011-08-03 14:27 2233collectd是一个守护(daemon)进程,用来收集系 ... -
HP ASR(Automatic Server Recovery)机制
2011-04-15 14:24 3509ASR(Automatic Server Re ... -
LINUX下用HP的IML工具查看服务器的日志信息
2011-04-14 16:40 4793LINUX下用HP的IML工具查看 ... -
LINUX做服务器的无盘系统
2011-01-26 18:19 1882客户端是支持PXE方式启 ... -
简易搭建一个私有云平台
2010-11-17 18:30 3169众说周知Amazon EC2是一个公共云的计算平台,属于Iaa ... -
[HA]利于heartbeat构建Oracle高可用
2010-09-17 12:41 471610月 24th, 2008 @ Kevin.yuan ... -
服务部署--IP SAN潜在的关键应用
2010-08-26 09:38 2057IP SAN可以说是近几年来存储领域的关键技术之一, ... -
通过HAProxy构建开源负载均衡架构平台
2010-08-09 00:07 49381. 目的 通过此作业指导书,知道如何使用ubu ... -
MySQL负载均衡
2010-08-08 23:39 46341. 添加监控MySQL状态的端口 # vi /etc/se ... -
SQL Server 各版本的区别
2010-08-08 17:49 3956SQL Server 2005 Enterprise Ed ... -
Oracle数据库11g版本介绍
2010-08-08 17:44 3447无论您是独立开发者、中小企业还是大型企业,这些世界一 ... -
tpmC简单计算法
2010-07-29 18:59 17912计算原则: 以单台服务器性能进行计算,即确保单台服务器工作的时 ... -
KVM遥控服务器群
2010-07-07 15:54 2114众所周知,所谓KVM,就是键盘(Keyboard)、显示器 ... -
数据存储配置参考
2010-07-02 10:07 1765型号 配 置 数量 ... -
More Numbers (OpenDS and a hint at ApacheDS)
2010-04-29 23:45 2443Some more numbers have come in. ... -
利用Copssh在windows下搭建ssh服务
2010-03-09 01:04 13391现在远程维护基本上用ssh连接,linux系 ... -
Taking a load off: Load balancing with balance
2010-03-05 16:00 1754A server is limited in how man ... -
Software Based Load Balancers
2010-03-05 15:57 1791keyword:Load Balance ref: http ... -
SAN,NAS,DAS及其架构之间区别
2010-02-26 14:11 1638随着计算机技术的发展 ... -
Apache: Creating A Session-Aware Loadbalancer Using mod_proxy_balancer (Debian E
2010-02-12 14:45 3144Since Apache 2.1, a new module ...
相关推荐
aws-kube-proxy1.16.8版本示例文件
browsermob-proxy-2.1.4,与selenium一起进行爬虫,获取network中的链接资源
gcr.io/kubebuilder/kube-rbac-proxy:v0.13.0 镜像
influx-proxy-2.5.7-linux-amd64.tar.gz
赠送jar包:netty-handler-proxy-4.1.68.Final.jar; 赠送原API文档:netty-handler-proxy-4.1.68.Final-javadoc.jar; 赠送源代码:netty-handler-proxy-4.1.68.Final-sources.jar; 赠送Maven依赖信息文件:netty-...
charles 解压就能用 charles-proxy-4.5.6-win64
k8s.gcr.io/kube-proxy:v1.15.3镜像tar包,使用 docker load --input kube-proxy_v1.15.3.tar进行导入
赠送jar包:netty-handler-proxy-4.1.73.Final.jar; 赠送原API文档:netty-handler-proxy-4.1.73.Final-javadoc.jar; 赠送源代码:netty-handler-proxy-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:netty-...
赠送jar包:netty-handler-proxy-4.1.73.Final.jar; 赠送原API文档:netty-handler-proxy-4.1.73.Final-javadoc.jar; 赠送源代码:netty-handler-proxy-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:netty-...
使用mysql5.7+sharding-proxy实现分表,策略为每半年时间分一次表
flex-messaging-proxy.jarflex-messaging-proxy.jarflex-messaging-proxy.jarflex-messaging-proxy.jar
docker-letsencrypt-nginx-proxy-companion-examples, 结合 Docker gen和 letsencrypt Nginx 代理伙伴的示例 docker-letsencrypt-nginx-proxy-companion-examples这个库是使用 nginx代理插件, docker gen和 docker-...
kubernetes的k8s.gcr.io/kube-proxy:v1.17.3镜像包,版本为v1.17.3。文件是kube-proxy_v_1_17.3.tar
代理服务器 BrowserMob Proxy,BrowserMob Proxy 简称 BMP,可以这么说,BMP 绝对是为 Selenium 为生的,Selenium + BMP 的完美搭配,可以实现很多你绝对想象不出来的功能
charles-proxy-4.5.6-win64.msi
利用ShardingSphere(sharding-proxy)实现分库分表,通过整合ZooKeeper,进行简单配置文件修改轻松实现跨库跨表相关操作,轻量级零侵入整合项目开发。
charles-proxy-4.2.8-win64.msi
mysql-proxy-0.8.5-windows-x86-32bit. 官网下载挺麻烦的,直接下载下来备份。 mysql proxy for windows
kube-proxy-amd64-v1.11.1镜像,镜像使用方法: docker load -i kube-proxy-amd64-v1.11.1.tar.gz
赠送jar包:hadoop-yarn-server-web-proxy-2.6.0.jar; 赠送原API文档:hadoop-yarn-server-web-proxy-2.6.0-javadoc.jar; 赠送源代码:hadoop-yarn-server-web-proxy-2.6.0-sources.jar; 赠送Maven依赖信息文件:...