@llplmlyd
2023-06-28T16:17:11.000000Z
字数 2839
阅读 153
Linux
3.9.1 创建haproxy运行账户和组,不允许haproxy用户直接登录系统
# groupadd haproxy
# useradd -g haproxy haproxy -s /bin/false
3.9.2安装依赖包
# yum install -y gcc
# yum install -y openssl openssl-devel systemd-devel.x86_64
3.9.3下载编译安装Haproxy
# rz
# tar zxvf haproxy-2.0.5.tar.gz
# cd haproxy-2.0.5
# uname -r
3.10.0-957.27.2.el7.x86_64
# make TARGET=linux3100 CPU=x86_64 PREFIX=/usr/local/haprpxy USE_OPENSSL=1 USE_SYSTEMD=1 USE_PCRE=1 USE_ZLIB=1
# make install PREFIX=/usr/local/haproxy
3.9.4 Haproxy 目录设置
# mkdir -p /usr/local/haproxy/conf #创建配置文件目录
# mkdir -p /etc/haproxy #创建配置文件目录
# touch /usr/local/haproxy/conf/haproxy.cfg #创建配置文件
# ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg #添加配置文件软连接
# cp -r /home/service/app/haproxy-2.0.5/examples/errorfiles /usr/local/haproxy/errorfiles #拷贝错误页面
# ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles #添加软连接
# mkdir -p /usr/local/haproxy/log #创建日志文件目录
# touch /usr/local/haproxy/log/haproxy.log #创建日志文件
# ln -s /usr/local/haproxy/log/haproxy.log /var/log/haproxy.log #添加软连接
# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy #添加软连接
3.9.5 手动配置haproxy.cfg
# vim /etc/haproxy/haproxy.cfg
# Global settings
global
log 127.0.0.1 local2
chroot /usr/local/haproxy
pidfile /var/run/haproxy.pid ###haproxy的pid存放路径,启动进程的用户必须有权限访问此文件
maxconn 400000 ###最大连接数
user haproxy
group haproxy
daemon ###创建1个进程进入deamon模式运行
# turn on stats unix socket
stats socket /usr/local/haproxy/stats
# defaults settings
defaults
mode tcp
log global
retries 3
option redispatch
timeout queue 60m
timeout client 60m #客户端超时
timeout server 60m #服务器超时
timeout check 120s
timeout http-request 10s
timeout http-keep-alive 120s
timeout connect 60m #连接超时
maxconn 30000
listen admin_stats
bind 0.0.0.0:2222
mode http
option httplog #采用 http 日志格式
option dontlognull #禁用空连接记录
maxconn 10 #默认的最大连接数
stats enable
stats refresh 30s #统计页面自动刷新时间
stats uri /haproxy #统计页面 url
stats realm Haproxy #统计页面密码框上提示文本
stats auth admin:pingcap123 #设置监控页面的用户和密码: admin, 可以设置多个用户名
stats hide-version #隐藏统计页面上 HAProxy 的版本信息
stats admin if TRUE #设置手工启动 / 禁用,后端服务器 (haproxy-1.4.9 以后版本)
# tidb-cluster settings
listen tidb-cluster
bind *:33066
mode tcp
balance roundrobin
server tidb2-bjht8044 10.37.70.1:4000 check inter 2000 rise 2 fall 3
server tidb1-bjht7600 10.37.64.2:4000 check inter 2000 rise 2 fall 3
server tidb3-bjht8192 10.37.70.3:4000 check inter 2000 rise 2 fall 3
3.9.6 将haproxy注册到CentOS7的服务,启用systemctl命令控制
# vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service]
ExecStartPre=/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/local/haproxy/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
激活服务
# systemctl daemon-reload
# systemctl enable haproxy
# systemctl start haproxy
3.9.7 haproxy开启日志
修改/etc/rsyslog.conf:
# vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
local2.* /var/log/haproxy.log
修改/etc/sysconfig/rsyslog:
# vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-r -m 0 -c 2"
重启haproxy服务,并查看日志
# systemctl restart haproxy
# systemctl restart rsyslog