用HAProxy实现负载均衡

yungame 2011-03-01

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/

wgethttp://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.14.2.tar.gz

tarzxvfhaproxy-1.3.14.2.tar.gz

mvhaproxy-1.3.14.2haproxy

cdhaproxy

make TARGET=linux26

2. 创建配置文件

#vihaproxy.cfg

global

maxconn5120

chroot/usr/local/haproxy

uid99

gid99

daemon

quiet

nbproc2#通过nbproc多设置几个haproxy并发进程,这样每个进程的task_queue相对就会短很多,性能自然就能提高不少

       #pidfile /var/run/haproxy-private.pid

defaults

logglobal

modehttp

optionhttplog

optiondontlognull

log127.0.0.1local3

retries3

optionredispatch

maxconn2000

contimeout5000

clitimeout50000

       srvtimeout    50000

listen webfarm 0.0.0.0:80

modehttp

statsuri/haproxy-stats#监控haproxy状态

statsrealmHaproxy\statistics

statsauthnetseek:52netseek#设置状态监控的用户名为netseek密码为52netseek

balanceroundrobin#负载均衡算法

cookieSERVERIDinsertindirect

optionhttpclose#

optionforwardfor#apache日志转发功能

optionhttpchkHEAD/check.txtHTTP/1.0#健康检测

serverapp_bbs1192.168.169.117:80cookieapp1inst1checkinter2000rise2fall5

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

#chownhaproxy:haproxy/var/log/haproxy.log

#chmodu+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

虚拟主机不记录检测日志:

SetEnvIfRequest_URI"^/check\.txt$"dontlog

LogLevelwarn

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模式

-Ddaemon模式启动

-q安静模式,不输出信息

-V详细模式

-c对配置文件进行语法检查

-s显示统计数据

-l显示详细统计数据

-dk不使用kqueue

-ds不使用speculativeepoll

-de不使用epoll

-dp不使用poll

-db禁用后台模式,程序跑在前台

-sf<pidlist>

程序启动后向pidlist里的进程发送FINISH信号,这个参数放在命令行的最后

-st<pidlist>

程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后

本篇文章来源于PHP资讯原文链接:http://www.phpq.net/linux/haproxy.html

相关推荐