您的位置:首页 > 职场人生

haproxy的安装与配置

2012-01-05 20:40 316 查看
参考文章
haproxy+keepalived实现高可用负载均衡
http://www.cnblogs.com/dkblog/archive/2011/07/06/2098949.html
HAProxy配置使用说明
http://blog.appleandroid.com/post/450/

Haproxy是一个可靠,高性能的tcp/http负载均衡器。Haproxy配置起来要比lvs简单很多,功能方面也更丰富。Haproxy支持两种代理模式,tcp(四层)和http(七层),tcp就是实现转发,http会分析协议,并且拒绝、允许、交换、增加、修改、删除请求,这些操作都要基于特定规则

1、haproxy的安装
http://haproxy.1wt.eu/#down下载

tar -zxvf haproxy-1.4.18.tar.gz

进入解压目录执行
make TARGET=linux26 PREFIX=/usr/local/haproxy install

(TARGET后面根据本机操作系统内核版本来填写,PREFIX是要安装到的目录)
安装完成后会在安装目录下生成doc ,sbin ,share三个文件夹

2、创建配置文件
mkdir conf
安装目录下面创建目录

[align=left]vi haproxy.cfg[/align]
conf下面新建文件
[align=left]文件内容如下(这个是能让haproxy工作起来的最小配置)[/align]
[align=left]global [/align]
log 127.0.0.1 local0 info #[err warning info debug]

maxconn 4096

user root

group root

daemon

nbproc 1

pidfile /home/admin/haproxy/logs/haproxy.pid

defaults

maxconn 2000

contimeout 5000

clitimeout 30000

srvtimeout 30000

listen admin_stats

bind 0.0.0.0:1080

mode http

log 127.0.0.1 local0 err
[align=left]stats uri /admin?stats[/align]
[align=left] [/align]
3、启动haproxy
touch /home/admin/haproxy/logs/haproxy.pid

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

通过http://192.168.57.1:1080/admin?stats可以看到管理页面

4、 修改haproxy启动文件权限
chown root:root haproxy (进入sbin目录)
chmod u+s haproxy (增加s权限)

上面的目的是如果haproxy启动起来监听的端口小于1024,并且启动用户不是root用户的话,就需要执行上面操作,因为非root用户一般情况下只能启动1024端口以上程序

5、配置日志
mkdir /home/admin/haproxy/logs
[align=left]如果启动用户是admin的话,那logs目录的所有者也需要改成admin, haproxy.cfg配置文件也需要改成admin[/align]
[align=left] [/align]
[align=left]6、创建启动\停止脚本[/align]
[align=left]这一步可以省略[/align]
[align=left] [/align]
[align=left]7、配置文件说明[/align]
[align=left]Haproxy配置中分为五部分,有些组建不是必选的,可以不需要。[/align]
[align=left] [/align]
[align=left]global:参数是进程级的,通常和操作系统相关,只需要设置一次,如果配置没错,以后就不需要再配置了[/align]
[align=left]defaults:配置默认参数,这些参数被用在frontend,backend,listen组件里[/align]
[align=left]frontend:接收请求的前段虚拟节点,frontend可以根据规则直接指定具体使用后端的backend(可动态选择)[/align]
[align=left]backend:后端服务器集群的配置,是真实的服务器[/align]
[align=left]listen:frontend和backend的组合体[/align]
[align=left] [/align]
[align=left]下面是一个具体的配置实例参考[/align]
[align=left]Global [/align]
log 127.0.0.1 local0 info #[err warning info debug]
[align=left]#配置日志[/align]
[align=left]user root[/align]
[align=left]group root[/align]
[align=left]#用户和组[/align]
[align=left]daemon[/align]
[align=left]nbproc 1[/align]
[align=left]#创建一个进程进入后台运行[/align]
[align=left] [/align]
pidfile /usr/local/haproxy/logs/haproxy.pid
[align=left]#进程的pid,启用用户要对这个文件有写入的权限[/align]
[align=left] [/align]
[align=left]Defaults[/align]
[align=left]mode tcp[/align]
[align=left]#下面所有的listen默认都是tcp模式[/align]
[align=left]option redispatch[/align]
[align=left]#当serverid对应的服务器宕机后,强制定向到其他健康的服务器上[/align]
[align=left]retries 2[/align]
[align=left]#连接2次失败就认为服务器宕机了[/align]
[align=left]balance roundrobin[/align]
[align=left] [/align]
[align=left]option dontlognull[/align]
[align=left] [/align]
[align=left]maxconn 2000[/align]
[align=left]#最大连接数[/align]
[align=left] [/align]
[align=left]timeout connect 50000ms[/align]
[align=left]#连接超时(contimeout)[/align]
[align=left]timeout client 1800000ms[/align]
[align=left]#客户端超时(clitimeout)[/align]
[align=left]timeout server 1800000ms[/align]
[align=left]#服务端超时(srvtimeout)[/align]
[align=left] [/align]
[align=left]#统计页面配置[/align]
[align=left] [/align]
[align=left]listen admin_stats[/align]
[align=left]bind 0.0.0.0:1080[/align]
[align=left]#监听端口[/align]
[align=left]mode http[/align]
[align=left]#http的7层模式[/align]
[align=left]option httplog[/align]
[align=left]log 127.0.0.1 local0 err[/align]
[align=left]#日志设置[/align]
[align=left]stats refresh 30s[/align]
[align=left]#统计页面自动刷新时间[/align]
[align=left]stats uri /admin?stats[/align]
[align=left]#统计页面url [/align]
[align=left]stats realm Haproxy\ Statistics[/align]
[align=left]#统计页面密码框上提示文本[/align]
[align=left]stats auth admin:admin[/align]
[align=left]stats auth admin1:admin1[/align]
[align=left]#统计页面用户密码设置[/align]
[align=left] [/align]
[align=left]##安倍胜-8150 连接的监听配置[/align]
[align=left] [/align]
[align=left]listen anbeisheng-8150[/align]
[align=left]bind *:8150[/align]
[align=left]mode tcp[/align]
[align=left]option tcplog[/align]
[align=left]log global[/align]
[align=left] [/align]
[align=left]#后台服务器[/align]
server anbeisheng1 172.31.1.12:8150 weight 3 check inter 2000 rise 2 fall 3
server anbeisheng2 172.31.1.9:8150 weight 3 check inter 2000 rise 2 fall 3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 休闲 haproxy