1,下载Haproxy
下载Haproxy 1.6
2,安装haproxy
uname -r
cd /usr/local/src/haproxy-1.6.9/
make TARGET=linux3100 ARCH=x86_64 USE_OPENSSL=1 ADDLIB=-lz
make install PREFIX=/usr/local/haproxy
配置haproxy
创建这三个目录
配置系统日志
vim /etc/rsyslog.conf
[[email protected] haproxy]# vim /etc/rsyslog.conf
[[email protected] haproxy]# cat /etc/sysconfig/rsyslog
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-r -m 0 -c 2"
5,重启rsyslog
systemctl restart rsyslog
6,配置Haproxy cfg文件
###########全局配置#########
global
chroot /usr/local/haproxy
daemon
nbproc 1
group haproxy
user haproxy
pidfile /usr/local/haproxy/logs/haproxy.pid
ulimit-n 65536
tune.ssl.default-dh-param 2048
log 127.0.0.1 local0
#spread-checks 5m
#stats timeout 5m
#stats maxconn 100
########默认配置############
defaults
mode tcp #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
retries 3 #两次连接失败就认为是服务器不可用,也可以通过后面设置
option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
maxconn 32000 #默认的最大连接数
timeout connect 5000ms #连接超时
timeout client 30000ms #客户端超时
timeout server 30000ms #服务器超时
#timeout check 2000 #心跳检测超时
log 127.0.0.1 local0 err #[err warning info debug]
listen admin_status #Frontend和Backend的组合体,监控组的名称,按需自定义名称
bind 0.0.0.0:1314 #监听端口
mode http #http的7层模式
log 127.0.0.1 local0 err #错误日志记录
stats refresh 5s #每隔5秒自动刷新监控页面
stats uri /admin?stats #监控页面的url
stats realm itnihao\ itnihao #监控页面的提示信息
stats auth admin:admin #监控页面的用户和密码admin,可以设置多个用户名
stats auth admin1:admin1 #监控页面的用户和密码admin1
stats hide-version #隐藏统计页面上的HAproxy版本信息
stats admin if TRUE #手工启用/禁用,后端服务器(haproxy-1.4.9以后版本)
#errorfile 403 /etc/haproxy/errorfiles/403.http
#errorfile 500 /etc/haproxy/errorfiles/500.http
#errorfile 502 /etc/haproxy/errorfiles/502.http
#errorfile 503 /etc/haproxy/errorfiles/503.http
#errorfile 504 /etc/haproxy/errorfiles/504.http
#################HAProxy的日志记录内容设置###################
capture request header Host len 40
capture request header Content-Length len 10
capture request header Referer len 200
capture response header Server len 40
capture response header Content-Length len 10
capture response header Cache-Control len 8
#######################网站监测listen配置#####################
###########此用法主要是监控haproxy后端服务器的监控状态############
frontend http_80_in
bind 0.0.0.0:80 #监听端口,即haproxy提供web服务的端口,和lvs的vip端口类似
bind *:443 ssl crt /usr/local/haproxy/server.pem
redirect scheme https if !{ ssl_fc }
mode http #http的7层模式
log global #应用全局的日志配置
option httplog #启用http的log
option httpclose #每次请求完毕后主动关闭http通道,HA-Proxy不支持keep-alive模式
option forwardfor #如果后端服务器需要获得客户端的真实IP需要配置次参数,将可以从Http Header中获得客户端IP
########acl策略配置#############
acl itnihao_web hdr_reg(host) -i haproxy.duobaonet.com
use_backend server_web if itnihao_web
#下面我将设置三组服务器 server_web,server_blog,server_bbs
###########################backend server_web#############################
backend server_web
mode http #http的7层模式
balance roundrobin #负载均衡的方式,roundrobin平均方式
cookie SERVERID #允许插入serverid到cookie中,serverid后面可以定义
server web1 127.0.0.1:51001 cookie web1 check inter 1500 rise 3 fall 3 weight 1
注意:设置haproxy代理后端tomcat 并设置https http自动跳转到https
证书合并:cat 214207719200903.pem 214207719200903.key |tee server.pem
8,启动Haproxy
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
9,把haproxy加入系统服务。