Haproxy 安装配置手册


Haproxy 安装配置手册 Author:dipsey Date:2014-04-24 目录 目录 .................................................................................................................................................. 1 1 概述 ............................................................................................................................................... 2 1.1Haproxy 简介 ....................................................................................................................... 2 2 安装 .............................................................................................................................................. 2 2.1OS 版本选择........................................................................................................................ 2 2.2 源码安装 ............................................................................................................................. 2 2.3 rpm 包安装 ......................................................................................................................... 2 2.4 其它说明 ............................................................................................................................. 2 2.5 监控统计工具包安装 ......................................................................................................... 3 3 配置 .............................................................................................................................................. 3 3.1 基本配置 ............................................................................................................................. 3 3.2 其它代理配置项 ................................................................................................................. 5 4 基本维护........................................................................................................................................ 6 4.1 服务管理命令 ..................................................................................................................... 6 4.2 配置文件检查 ..................................................................................................................... 6 5 监控统计........................................................................................................................................ 6 5.1 监控统计页面 ..................................................................................................................... 6 5.2 监控统计脚本 ..................................................................................................................... 7 5.3 监控统计命令 ..................................................................................................................... 7 5.4 第三方工具 hatop ............................................................................................................. 8 6 异常问题处理 ................................................................................................................................ 9 6.1 访问统计页面导致 haproxy 异常退出 .............................................................................. 9 1 概述 1.1Haproxy 简介 http://haproxy.1wt.eu/ 2 安装 2.1OS 版本选择 由于 linux 内核 2.6.25-28 兼容 haproxy1.4 有 bug,建议在 2.6.28 以上版本 OS 安装,例 如 centos6.5(2.6.32)。 2.2 源码安装 #tar zxvf haproxy-1.4.24.tar.gz #cd haproxy-1.4.24 #make TARGET=linux2628 PREFIX=/path #make install PREFIX=/path 注:linux2628 表示 内核版本>=2.6.28 2.3 rpm 包安装 在 svn 上的 haproxy 安装包及监控脚本目录中有 centos6.5-64bit 下编辑的包,默认安装 在系统根目录。 2.4 其它说明 安装包中的 haproxy.conf 为 1.2 版本,其中一些参数已经在高版本停用。配置参考下面 的配置文档,不要在默认的 haproxy.conf 基础上修改。 2.5 监控统计工具包安装 源码包中包含一个 stats_haproxy.sh 示例脚本,使用脚本需要先安装 socat 软件包,在 svn haproxy 安装包及监控脚本目录中有 socat 基于 centos6.5-64bit 的 rpm 包和 stats_haproxy.sh。 3 配置 3.1 基本配置 haproxy 配置主要包括全局配置和代理配置两部分,配置具体说明如下。 ####全局设置 global ###进程管理和安全 ##设置 log,本机 syslog 需修改配置允许接收远程 log。默认不开启,因为 log 会记 录每一个请求,影响性能。 #log 127.0.0.1 local3 info ##启动 haproxy 进程的用户,99 为 nobody 用户 uid 99 ##启动 haproxy 进程的用户,99 为 nobody 组 gid 99 ##后台运行 haproxy daemon ## number process,仅在 daemon 模式使用,官方建议 1 个。多个进程,调试会比 较困难。 nbproc 1 ##pidfile 存放位置 pidfile /var/run/haproxy.pid ##开启统计接口,可以使用 hatop 或 socat 获得统计信息。 stats socket /var/run/haproxy.stat ###性能优化参数(性能优化参数还有很多,其它参数官方建议使用默认) ##最大连接数 maxconn 65535 ##该参数增加随机性检查的时间间隔,在 0 和 +/- 50%之间。官方建议在 2 和 5 之间,默认值是 0。可以避免并发检查多台服务器,尤其是后端服务器比较多的情 况。 spread-checks 3 ####代理设置 ###缺省设置 defaults ##采用全局定义的日志 log global ##工作模式,还可以设置 tcp 等 mode http ##传输大文件 时,提前记录日志。 option logasap ##被动关闭 option httpclose ##不记录空连接,空连接为上层负载均衡设备健康检查的心跳包。 option dontlognull ##HAProxy 可以向发往服务器的所有请求中添加 HTTP 头 部 字 段 “X-Forwarded-For”。该头部字段的值代表客户端的 IP 地址。 option forwardfor ##连接两端 tcpkeepalive option tcpka ##client keepalive option clitcpka ## server keepalive option srvtcpka ##连接失败后重试的次数 retries 3 ##连接失败重新调度分发会话 option redispatch ##最大连接数 maxconn 30000 ##连接超时 timeout connect 5000ms ##timeout client 和 server 的值要保持一致,官方示例为 50s。实际使用根据应用程 序需求设置。 timeout client 50s timeout server 50s ##开启监控统计,监控统计访问 URI stats uri /haproxy-stats ##认证密码框提示文本 stats realm haproxy\ statistics ##认证使用的用户和密码 stats auth admin:pasSWord ##隐藏 haproxy 版本 stats hide-version ###前端设置 frontend public ## 绑定 IP 和端口 bind :80 ##工作模式 mode http ##最大连接数 maxconn 30000 ##上层负载均衡设备心跳检查使用的 URL, 直接返回 HTTP 状态代码,不转发给后 端的 server。 monitor-uri /monitoruri ##关键字定义,根据定义的关键字选择 backend 组,中间的 i 是忽略大小写。 #关键字定义泛域名使用符号 .* 匹配 reqisetbe ^Host:\ test.test.com test reqisetbe ^Host:\ .*.web.test.com web 注:在版本 1.5 中 “reqisetbe”参数被“use_backend” 替代。 ##默认的后端组 default_backend test ###后端设置 backend test ##负载均衡策略 ,按照客户端源地址哈希,客户端会始终访问同一个 server。 balance source ##允许插入 serverid 到 cookie 中,serverid 在后面可以定义 cookie SERVERID insert indirect ##cookie A 表示 serverid 为 A;check port 80 检查 80 端口,inter 2000 检查间隔为 2000ms,rise 2 表示 2 次正确服务器可用,fall 2 表示 2 次检查失败服务器不可用。 server test1 192.168.52.48:80 cookie A check port 80 inter 2000 rise 2 fall 2 3.2 其它代理配置项 前端和后端配置项可以在 listen 配置项中一起设置,配置示例如下。 listen tcpserver bind :8888 mode tcp server tcpserver1 192.168.52.48:80 check port 80 inter 2000 rise 2 fall 2 4 基本维护 4.1 服务管理命令 使用 rpm 包安装,服务器管理脚本安装在/etc/rc.d/init.d/haproxy,用法如下。 haproxy {start|stop|restart|reload|condrestart|status|check} 4.2 配置文件检查 1、使用服务管理脚本检查 /etc/rc.d/init.d/haproxy check 注:只能检查当前使用的配置文件。 2、使用命令检查 #haproxy –c –f 5 监控统计 5.1 监控统计页面 在配置文件里面配置了统计页面,可以通过浏览器访问。 修改/etc/haproxy/haproxy.cfg,增加下面几行: listen admin_stats bind 0.0.0.0:1080 mode http log 127.0.0.1 local0 err stats uri/admin?stats #/etc/init.d/haproxy restart 重启服务,然后通过 http://ip 地址:1080/admin?stats 访问或者在 配置文件/etc/haproxy/haproxy.cfg 全局设置中加入如下几行 stats uri /haproxy-stats stats realm haproxy\ statistics stats auth admin:pasSWord #/etc/init.d/haproxy restart 重启服务,然后通过 http://ip 地址/haproxy-stats 访问,输入 用户名和密码进入查看。 示例页面如下。 5.2 监控统计脚本 源码包中包含一个 stats_haproxy.sh 脚本,通过调用 socat 访问统计接口采集数据,功能 等同于统计页面。命令用法如下。 Usage : stats_haproxy.sh [options] -s section --section -s section : section to use ( --list format) Options : --socket -S [socket] : socket to use (default: /var/run/haproxy.stat) --list -l : print available sections --help -h : print this message 命令示例如下。 #./stats_haproxy.sh –s public 命令输出如下: 50 sessions/s (avg: 50 ) 93 concurrent sessions 53 sessions/s (avg: 51 ) 92 concurrent sessions 34 sessions/s (avg: 45 ) 95 concurrent sessions 33 sessions/s (avg: 42 ) 92 concurrent sessions 33 sessions/s (avg: 40 ) 101 concurrent sessions 5.3 监控统计命令 使用 socat 命令,可以直接通过命令行采集数据。命令示例如下。 #echo "help" | socat /var/run/haproxy.stat stdio 命令输出如下,列出了可用的命令参数,其中参数 stat 可以显示统计信息。 Unknown command. Please enter one of the following commands only : clear counters : clear max statistics counters (add 'all' for all counters) help : this message prompt : toggle interactive mode with prompt quit : disconnect show info : report information about the running process show stat : report counters for each proxy and server show errors : report last request and response errors for each proxy show sess [id] : report the list of current sessions or dump this session get weight : report a server's current weight set weight : change a server's weight set timeout : change a timeout setting disable server : set a server in maintenance mode enable server : re-enable a server that was previously in maintenance mode #echo "show stat" | socat /var/run/haproxy.stat stdio 命令输出为 csv 格式,如下。示例脚本就是格式化 #pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis, status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,typ e,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hr sp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt, mm,FRONTEND,,,0,4,30000,124,51741,1426307,0,0,10,,,,,OPEN,,,,,,,,,1,1,0,,,,0,0,0,10,,,,0,111,0, 13,0,0,,0,10,124,,, mm,test,0,0,0,4,,114,51441,1424624,,0,,0,0,0,0,no check,1,1,0,,,,,,1,1,1,,114,,2,0,,10,,,,0,111,0,3,0,0,0,,,,13,0, mm,BACKEND,0,0,0,4,30000,114,51741,1426307,0,0,,0,0,0,0,UP,1,1,0,,0,13450,0,,1,1,0,,114,,1, 0,,10,,,,0,111,0,3,0,0,,,,,13,0, 5.4 第三方工具 hatop 1、源站:http://feurix.org/projects/hatop/ 目前最新版本是 hatop-0.7.7.tar.gz 2、安装 进入解压后的源码包目录,运行下面命令安装。 #install -m 755 bin/hatop /usr/local/bin #install -m 644 man/hatop.1 /usr/local/share/man/man1 #gzip /usr/local/share/man/man1/hatop.1 3、hatop 使用 Hatop 界面类似 top,分为 5 个子界面(切换分别按 1 2 3 4 5 或 tab 键选择)。 注:按 5 进入 CLI 模式,返回其它界面,只能按 tab 键切换。 hatop 界面示例如下,输出信息与 web 统计界面类似,相关参数含义查看官方文档 http://feurix.org/projects/hatop/readme/ #hatop -s /var/run/haproxy.stat 6 异常问题处理 6.1 访问统计页面导致 haproxy 异常退出 访问统计页面 http://192.168.52.142/admin?stats 时,页面无显示,haproxy 程序异常退出, 系统 log 显示如下信息。 kernel: haproxy[1183]: segfault at 50 ip 000000000042823b sp 00007fff5a816940 error 4 in haproxy[400000+5d000] 查看配置文件,配置了直接 IP 访问定位到后端 test 组,如下所示。 reqisetbe ^Host:\ 192.168.52.142 test 注释掉此行,访问统计页面正常。
还剩8页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

dipsey

贡献于2015-06-18

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf