- 论坛徽章:
- 2
|
一,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 #负载均衡
- [url=javascript:;][u][b][color=#656d77]算法[/color][/b][/u][/url]
- 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 ] [-s] [-l] [-dk]
[-ds] [-de] [-dp] [-db] [-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里的进程发送FINISH信号,这个参数放在命令行的最后
-st
程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后
四,更高级的应用参考相关文档
官方参考手册:
http://haproxy.1wt.eu/download/1.3/doc/haproxy-en.txt
http://www.howtoforge.com/high-availability-load-balancer-haproxy-heartbeat-debian-etch
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/4206/showart_1358929.html |
|