赞
踩
[root@localhost ~]# uname -r
3.10.0-693.el7.x86_64
[root@localhost ~]# yum -y install pcre-devel bzip2-devel gcc gcc-c++ make
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# cd /opt/
[root@localhost opt]# rz -E
rz waiting to receive.
[root@localhost opt]# tar zxvf haproxy-1.5.19.tar.gz
[root@localhost opt]# cd haproxy-1.5.19/
[root@localhost haproxy-1.5.19]# uname -r
3.10.0-693.el7.x86_64
【查看内核,如果大于2.6.28则用TARGET=linux2628。小于则用TARGET=linux26】
root@localhost haproxy-1.5.19]# make TARGET=linux2628 arch=x86_64 【arch=x86_64:系统位数】
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy [root@localhost haproxy-1.5.19]# make install [root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/ [root@localhost haproxy-1.5.19]# cd /etc/haproxy/ [root@localhost haproxy]# vim haproxy.cfg [root@localhost haproxy]# vim haproxy.cfg 1 # this config needs haproxy-1.1.28 or haproxy-1.2.1 2 3 global 【全局配置参数】 4 log 127.0.0.1 local0 【配置日志记录,local0为日志设备,默认存放到系统日志】 5 log 127.0.0.1 local1 notice 6 #log loghost local0 info 7 maxconn 4096 【最大连接数,修改时需考虑ulimit -n限制】 8 # chroot /usr/share/haproxy 【chroot运行路径,为该服务自设的根目录,一般需将此行注释】 9 uid 99 【用户UID】 10 gid 99 【用户GID】 11 daemon 【守护进程模式】 12 #debug 13 #quiet 14 15 defaults 16 log global 【定义日志为global配置中的日志定义】 17 mode http 【模式为http】 18 option httplog 【采用http日志格式记录日志】 19 option dontlognull 【不记录健康检查日志信息】 20 retries 3 【检查节点服务器失败次数,连续达到三次失败则认为节点不可用】 21 redispatch 【当服务器负载很高时,自动结束当前队列处理比较久的连接】 22 maxconn 2000 【最大连接数】 23 contimeout 5000 【连接超时时间】 24 clitimeout 50000 【客户端超时时间】 25 srvtimeout 50000 【服务器超时时间】 【将下面所有的listen项删除并添加】 26 listen webcluster 0.0.0.0:80 【定义一个名为webcluster的应用】 27 option httpchk GET /test.html 【检查服务器的test.html文件(POST和GET都是向服务器提交数据/请求的方式)】 28 balance roundrobin 【负载均衡调度算法使用轮询算法】 【roundrobin:轮询算法】 【leastconn: 最小连接数算法】 【source: 来源访问调度算法,类似于nginx的ip_hash轮询 加权】 【定义在线节点】 29 server inst1 192.168.131.11:80 check inter 2000 fall 3 30 server inst1 192.168.131.12:80 check inter 2000 fall 3 【check inter 2000:表示haproxy服务器和节点之间的一个心跳频率】 【fall 3: 表示连续三次检测不到心跳频率则认为该节点失效】 【若节点配置后带有“backup”表示该节点只是个备份节点,只有主节点失效该节点才会用】 【不携带“backup”则表示为主节点,和其他主节点共同提供服务】
参数 | 说明 |
---|---|
log | 日志配置,可设置rsyslog服务地址、日志设备、日志级别等 |
chroot | Haproxy的工作目录 |
pidfile | PID文件路径 |
maxconn | 每个进程可接受的最大并发连接数 |
user | 运行Haproxy的用户,可设置用户名或uid |
group | 运行Haproxy的组,可设置组名或gid |
nbproc | 启动Haproxy时创建的进程数,默认只启动一个进程 |
deamon | 以后台形式运行Haproxy,默认启用 |
选项 | 说明 |
---|---|
mode | 设置实例的运行模式:tcp、http、health,默认是http |
log | 设置启用的日志配置,默认是global |
maxconn | 最大并发连接数 |
retries | 设置连接后端服务器时失败重试的次数,默认是3次 |
timeout | 超时时间,单位毫秒,可以重复出现,定义时以“timeout”关键字开始且另起一行 timeout的常用选项如下7行 |
http-request | http请求的超时时间 |
queue | 队列的超时时间 |
connect | 成功连接后端服务器的超时时间 |
client | 客户端发送数据的超时时间 |
server | 后端服务器响应数据的超时时间 |
http-keep-alive | 持久连接的超时时间 |
check | 心跳检测的超时时间 |
option | 定义选项,可以出现多次,每配置一个选项值,则需要另起一行,以“option”开始 option的常用选项如下5行 |
httplog | 启用日志记录http请求 |
dontlognull | 不记录健康检查的日志信息 |
http-server-close | 收到后端响应后,关闭连接,但是不会关闭客户端与haproxy的连接 |
forwardfor | 启动X-Forwarded-For,将客户端的真实IP写入其中 |
redispatch | 在连接失败的情况下启用或禁用会话重新分发,默认值是1 |
选项 | 说明 |
---|---|
acl | 定义acl规则 |
use_backend | 指定直接使用的后端(需要先在backend部分定义),一般与ACL配合使用 |
default_backend | 指定默认后端(需要先在backend部分定义),在use_backend规则不匹配时使用 |
选项 | 说明 |
---|---|
balance | 指定调度算法。 可以是roundrobin、static-rr、leastconn、first、source、uri、url_param、hdr()、random、rdp_cookie、rdp_cookie() |
server | 定义后端真实服务器,可以重复出现,定义时需要以“server”关键字开始且另起一行 |
[root@localhost haproxy-1.5.19]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy-1.5.19]# cd /etc/init.d/
[root@localhost init.d]# ls
functions haproxy netconsole network README
[root@localhost init.d]# chmod +x haproxy
[root@localhost init.d]# chkconfig --add /etc/init.d/haproxy
[root@localhost init.d]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@localhost init.d]# service haproxy start
[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 [root@localhost ~]# systemctl disable firewalld.service [root@localhost ~]# cd /opt/ [root@localhost opt]# ls nginx-1.12.0.tar.gz rh [root@localhost opt]# yum install -y pcre-devel.x86_64 zlib-devel.x86_64 gcc gcc-c++ make [root@localhost opt]# tar zxvf nginx-1.12.0.tar.gz [root@localhost opt]# cd nginx-1.12.0/ [root@localhost nginx-1.12.0]# ./configure \ > --prefix=/usr/local/nginx \ > --user=nginx \ > --group=nginx [root@localhost nginx-1.12.0]# make -j2 install [root@localhost nginx-1.12.0]# echo "192.168.131.11" > /usr/local/nginx/html/test.html [root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [root@localhost nginx-1.12.0]# useradd -M -s /sbin/nologin nginx [root@localhost nginx-1.12.0]# nginx 【启动nginx服务】
[root@localhost init.d]# vim /etc/haproxy/haproxy.cfg
global
log /var/log local0
log /var/log local1 notice
[root@localhost init.d]# service haproxy restart
[root@localhost init.d]# vim /etc/rsyslog.d/haproxy.conf
if ($programname == 'haproxy' and $syslogseverity-text == 'info')
then -/var/log/haproxy/haproxy-info.log
&̲~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log
&~
【这部分是将haproxy的info日志记录到/var/log/haproxy/haproxy-info.log下,将notice日志记录到/var/log/haproxy/haproxy-notice.log下】
【&~:表示当日志写入到日志文件后,rsyslog停止处理这个信息】
[root@localhost init.d]# mkdir /var/log/haproxy
[root@localhost init.d]# systemctl restart rsyslog.service
[root@localhost init.d]# tail -f /var/log/haproxy/haproxy-info.log 【查看haproxy的访问请求日志信息】
参数 | 说明 | 优化建议 |
---|---|---|
timeout http-server-close | 长连接超时时间 | 此选项设置长时间连接超时时间,具体可参考应用自身特点设置,可以设置为 10s |
timeout http-request | http 请求超时时间 | 建议将此事件设置为 5~10s,增加 http 连接释放速度 |
timeout client | 客户端超时时间 | 如果访问量过大,节点响应慢,可以将此事件设置短一些,建议设置为 1min 左右即可 |
maxconn | 最大连接数 | 此参数根据应用的实际使用情况进行调整,推荐使用 10 240 |
daemon | 守护进程模式 | Haproxy 可以使用非守护进程模式启动,生产环境建议使用守护进程模式启动 |
nbproc | 负载均衡的并发进程数 | 建议与当前服务器 CPU 核数相等或为其 2 倍 |
retries | 重试次数 | 此参数主要用于对群集节点的检查,如果节点多且并发量大,设置为 2 次或 3 次;而在服务器节点不多的情况下,可以设置为 5 次或 6 次 |
option http-server-close | 主动关闭 http 请求选项 | 建议在生产环境中使用此选项,避免由于 timeout 时间设置过长导致 http 连接堆积 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。