注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

simonzhang个人观点

http://www.simonzhang.net 镜像地址

 
 
 

日志

 
 

haproxy 安装 配置   

2010-05-16 23:03:12|  分类: 负载 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 [整理人:张子萌 2010-4]

一、概述

测试环境

操作系统CentOS

VIP地址:192.168.11

负载到两台web地址:192.168.1.2和192.168.1.3

WEB服务器备用地址:192.168.1.4

二、下载、安装

下载地址:http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.5.tar.gz

# tar zxvf haproxy-1.4.5.tar.gz

# cd haproxy-1.4.5

# make TARGET=linux26 PREFIX=/usr/local/haproxy

编译过程中TARGET=linux26 为系统内核版本为2.6。

# make install PREFIX=/usr/local/haproxy

# mkdir –p /usr/local/haproxy/logs

# groupadd –g650 haproxy

# useradd  -u650 -g haproxy haproxy

 

三、配置

默认配置可以参见编译环境中examples/haproxy.cfg

本文手动编辑配置文件

# /usr/local/haproxy

# vi haproxy.cfg

global

       log 127.0.0.1  local0 #使用本机的syslog来记录log

       log 127.0.0.1  local1 notice

       #log loghost    local0 info

       maxconn 4096   # ulimit-n必须是maxconn的两倍以上

       chroot /usr/local/haproxy

       uid haproxy

       gid haproxy

       daemon

    nbproc 2   #设置haproxy的并发进程

    pidfile /usr/local/haproxy/logs/haproxy.pid

       #debug

       #quiet

 

defaults

       log   global

       mode      http

       option     httplog

    option  httpclose #启用被动的http连接关闭

       option     dontlognull

    option  forwardfor #apache日志转发功能

    option  redispatch # 不会连接到宕机服务器

    option nolinger     #在连接关闭时立即清理连接,减少FIN_WAIT1连接

       retries     3 #web无法访问的重试次数

       maxconn 2000

    balance roundrobin

       contimeout     5000

       clitimeout       50000

       srvtimeout      50000

 

listen test 192.168.1.1:80

       mode http  #监听模式"tcp"也即4层,和"http",即7层

       stats  enable  #打开状态监控

       stats  auth admin:admin #进入状态监控页面

    stats refresh     5s

    stats   uri  /haproxy-stats #状态监控后缀

       balance    roundrobin  #负载算法 roundrobin(动态加权轮循)source(加权源地址哈希)

       cookie     JSESSIONID prefix  #处理session

       option   forwardfor  #apache日志转发功能

       option   httpchk  HEAD  /robots.txt   HTTP/1.0   #健康检测连接和协议

    option   forwardfor    # 插入 X-Forwarded-For 头部

       server web1 192.168.1.2 weight 3 minconn 100 maxconn 900 check  inter 20000 fall 3

       # inter 健康检测间隔 20000微妙

       server web2 192.168.1.3 weight 3 minconn 100 maxconn 900 check  inter 20000 fall 3

    server web3 192.168.1.4 weight 3 check  inter 20000 fall 3 backup

    errorfile   400 /etc/haproxy/errors/400.http #根据错误号,解析错误页面

四、启动

命令在/usr/local/haproxy/sbin.

haproxy  -f  <配置文件>  [-n 最大并发连接总数] [-N 每个侦听的最大并发数] [-d] [-D] [-q] [-V] [-c] [-p] [-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里的进程发送FINISH信号,这个参数放在命令行的最后

        -st    程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后但配置后,死活不会输出日志,还没找到解决方法,网上有些,但行不通:

       建议第一次运行建议使用前台模式便于调试

./haproxy –f /usr/local/haproxy/haproxy.cfg –d

五、优化

       a)日志部分

       健康检测会产生大量日志,建议屏蔽掉。

apache不记录健康检查和监控的log

SetEnvIf Request_URI "^//robots.txt$" dontlog

CustomLog output/logs/cookie_logs/%w/cookie_log cookielog env=!dontlog

 

六、常见问题

a)  启动失败

使用./haproxy –f /usr/local/haproxy/haproxy.cfg –d启动系统报错如下:

Starting haproxy: [ALERT] 015/191034 (15631) : Starting proxy webfarm: cannot bind socket...on both load balancers

[ALERT] 056/103843 (1358) : Starting proxy www-balancer: cannot bind socket

解法方法:

修改# vi /etc/sysctl.conf

net.ipv4.ip_nonlocal_bind=1

保存结果,使结果生效

# sysctl –p

  评论这张
 
阅读(3684)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017