首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

用HAProxy兑现负载均衡

2012-08-31 
用HAProxy实现负载均衡HAProxy 介绍?? 反向代理服务器,支持双机热备支持虚拟主机,但其配置简单,拥有非常不

用HAProxy实现负载均衡

HAProxy 介绍
?? 反向代理服务器,支持双机热备支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。新的1.3引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend.

利用HAPorxy实现负载均衡

1. 利用HAProxy实现负载均衡
192.168.169.137 (haproxy)---------负载均衡----------(192.168.169.117;192.168.169.118)
安装配置HAproxy
cd /usr/local/
wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.14.2.tar.gz
tar zxvf haproxy-1.3.14.2.tar.gz
mv?? haproxy-1.3.14.2?? haproxy
cd haproxy
make TARGET=linux26

2. 创建配置文件
# vi haproxy.cfg
global
?????? maxconn 5120
?????? chroot /usr/local/haproxy
?????? uid 99
?????? gid 99
?????? daemon
?? quiet
?????? nbproc?? 2?? #通过nbproc多设置几个haproxy并发进程,这样每个进程的task_queue相对就会短很多,性能自然就能提高不少
?????? #pidfile /var/run/haproxy-private.pid

defaults
?????? log???? global
?????? mode http
?????? option?? httplog
?????? option?? dontlognull
?????? log 127.0.0.1 local3
?????? retries 3
?????? option redispatch
?????? maxconn 2000
?????? contimeout??? 5000
?????? clitimeout??? 50000
?????? srvtimeout??? 50000

listen webfarm 0.0.0.0:80
?? mode http
?? stats uri /haproxy-stats???? #监控haproxy状态
?? stats realm Haproxy\ statistics
?? stats auth netseek:52netseek?? #设置状态监控的用户名为netseek密码为52netseek
?? balance roundrobin???? #负载均衡算法
?? cookie SERVERID insert indirect
?? option httpclose #
?? option forwardfor?? #apache日志转发功能
?? option httpchk HEAD /check.txt HTTP/1.0?? #健康检测
server app_bbs1 192.168.169.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server app_bbs2 192.168.169.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5

syslog.conf里加一行
local3.*?????? /var/log/haproxy.log
?
# touch /var/log/haproxy.log
# chown haproxy:haproxy /var/log/haproxy.log
# chmod u+x /var/log/haproxy.log
?
# tail –f /var/log/harpoxy.log 监控日志

# ./haproxy -f haproxy.cfg 启动服务.


监控状态图示http://192.168.169.137/haproxy-stats ,输入用户名密码查看状态。

后端apache日志处理
配置httpd.conf
LogFormat "%{X-Forwarded-For}i %l %u %t "%r" %>s %b " combined
?????? CustomLog /var/log/httpd/access_log combined

虚拟主机不记录检测日志:
SetEnvIf Request_URI "^/check\.txt$" dontlog
LogLevel warn
ErrorLog /var/log/httpd/vhost_error.log
CustomLog /var/log/httpd/vhost_access.log combined env=!dontlog


相关介绍
#./haproxy –help //haproxy相关命令参数介绍.
haproxy?? -f?? <配置文件>?? [-n 最大并发连接总数] [-N 每个侦听的最大并发数] [-d] [-D] [-q] [-V] [-c] [-p <pid文件>] [-s] [-l] [-dk]
?? [-ds] [-de] [-dp] [-db] [-m <内存限制M>] [{-sf|-st} pidlist...]
?? -d???? 前台,debug模式
?? -D???? daemon模式启动
?? -q???? 安静模式,不输出信息
?? -V???? 详细模式
?? -c???? 对配置文件进行语法检查
?? -s???? 显示统计数据
?? -l???? 显示详细统计数据
?? -dk 不使用kqueue
?? -ds 不使用speculative epoll
?? -de 不使用epoll
?? -dp 不使用poll
?? -db 禁用后台模式,程序跑在前台
?? -sf <pidlist>
?? 程序启动后向pidlist里的进程发送FINISH信号,这个参数放在命令行的最后
?? -st <pidlist>
?? 程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后
本篇文章来源于 PHP资讯 原文链接:http://www.phpq.net/linux/haproxy.html

热点排行