haproxy部署配置
环境
c1.heboan.com 192.168.88.1 CentOS Linux release 7.2.1511 (Core) yum install -y gcc gcc-c++
在文件中插入以下两行,并重启系统生效
# vim /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535
安装
tar xf haproxy-1.6.3.tar.gz cd haproxy-1.6.3 make TARGET=linux2628 PREFIX=/application/haproxy-1.6.3 make install PREFIX=/application/haproxy-1.6.3 cp ~/haproxy-1.6.3/examples/haproxy.init /etc/init.d/haproxy ls -n /application/haproxy-1.6.3 /application/haproxy cd /application/haproxy mkdir conf logs
配置环境变量
vim /etc/profile.d/haproxy.sh export PATH=$PATH:/application/haproxy/sbin source /etc/profile.d/haproxy.sh haproxy -v
创建组和用户
groupadd haproxy useradd -g haproxy -r haproxy chown -R haproxy.haproxy /application/haproxy chown -R haproxy.haproxy /application/haproxy-1.6.3
配置日志
# vim /etc/rsyslog.conf $ModLoad imtcp 去掉这两行注释,第19、20行 $InputTCPServerRun 514 ... local3.* /application/haproxy/logs/haproxy.log #第74行增加此行配置 # systemctl restart rsyslog
配置文件
haproxy安装后是没有默认配置文件的,需要手动创建。本例将创建/application/haproxy/conf/haproxy.cfg 当启动haproxy服务时需要使用-f选项指定配置文件路径 配置文件主要包括全局段与代理段,global代表全局段,defualt、listen、frontend、backend为代理段 fronted: 用来匹配客户端请求的域名或URI等 backend: 定义后端服务器集群 listen: 是frontend与backend的集合,有时仅使用listen即可替代frontend与backend ********************** global log 127.0.0.1 local3 info #这的local3指定到我们上面配置的rsyslog,info是日志级别 maxconn 40960 #支持每个进程的最大并发数 chroot /application/haproxy #将目录切换至/application/haproxy并执行chroot,增强安全性 user haproxy #配置进程的账户 group haproxy #配置进程的组 daemon #配置haproxy以守护进程模式运行 nbproc 1 #指定后台进程的数量 defaults #默认段,可以被前段和后端继承的,如果不配置就会继承默认段 log global mode http #haproxy工作模式,可选项为:tcp、http、health option httplog #使用http日志 option dontlognull #不记录健康检查的连接 option forwardfor #允许插入X-Forwarded-For数据包头给后端真实服务器,可以让后端服务器获取真实客户端IP option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的连接 retries 3 #重试次数 maxconn 40960 timeout connect 5000 #设置连接最大超时时间,默认单位为毫秒(ms) timeout client 5000 #设置客户端最大超时时间,默认单位为毫秒(ms) timeout server 5000 #设置服务器端最大超时时间,默认单位为毫秒(ms) frontend http-in #定义终端用户访问的前端服务器,http-in是自己定义的名字 bind *:80 #定义一个或多个监听地址及端口 acl heboan hdr_beg(host) -i www.heboan.com #定ACL控制请求包头信息通过正则匹配,-i代表不区分大小写 acl heboan hdr_beg(host) -i heboan.com use_backend www_heboan_com if heboan #当用户请求触发名为heboan的ACL规则时,代理会将请求转发到heboan_server后端服务组 #default_backend <后端名> #可以定义一个默认的后端 stats enable #开启harproxy监控页面 stats hide-version #隐藏haproxy版本信息 stats uri /haproxy-status #设置监控页面的URI stats auth admin:heboan123 #设置监控页面的用户名及密码 stats admin if TRUE backend www_heboan_com #定义后端服务器组 balance roundrobin #轮询真实服务器 cookie SESSION_COOKIE insert indirect nocache option httpchk GET /index.html server web1 192.168.88.2:80 minconn 100 maxconn 1000 cookie web1 weight 6 check inter 2000 rise 2 fall 4 server web2 192.168.88.3:80 minconn 100 maxconn 1000 cookie web2 weight 6 check inter 2000 rise 2 fall 4 #健康检查,健康检查的时间间隔为2000ms,连续2次健康检查成功则认为服务器是有效开启的,连续4次检查检查失败后,认为服务器已经宕机,权重为6
启动haproxy
haproxy -f /application/haproxy/conf/haproxy.cfg
每天进步一点,加油!