如何安装部署HAProxy?
- By : Will
- Category : Load balancing
Load balancing
1 基础知识
1.1 软件的介绍
– HAProxy是一款开源免费、快速、可靠的解决方案
– HAProxy是基于TCP和HTTP协议提供高可用、负载均衡和代理服务
1.2 软件的功能
– 负载均衡
– 高可用
– 代理服务
2 最佳实践
2.1 准备安装环境
2.1.1 系统的基本配置
HostName = haproxy.cmdschool.org
OS = Oracle Linux 9.x x86_64
IPAddress = any
2.1.2 系统的基本配置
2.2 安装配置HAProxy
2.2.1 安装软件包
dnf install -y haproxy
2.2.2 启动会服务并设置服务自启动
systemctl start haproxy.service systemctl enable haproxy.service
服务启动后,你需要使用如下命令查看服务器的状态,
systemctl status haproxy.service
然后,你可以使用如下命令查看启动的进程,
pgrep -u haproxy haproxy -a
可见如下输出,
/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf.d -p /run/haproxy.pid
然后,你可以使用如下命令查看倾听的端口,
netstat -antp | grep `pgrep -u haproxy haproxy`
可见如下显示,
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 5271/haproxy
2.2.3 简化配置文件
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.default vim /etc/haproxy/haproxy.cfg
清理包含范例的配置,简化后的配置如下,
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
2.3.4 重载服务使配置生效
systemctl reload haproxy.service
2.3 配置HAProxy的日志参数
2.3.1 修改HAProxy的默认配置文件
vim /etc/haproxy/haproxy.cfg
检查以下行处于启动状态,
log 127.0.0.1 local2
2.3.2 重启服务使配置生效
systemctl restart haproxy.service
2.4 配置rsyslog参数
2.4.1 修改日志配置
vim /etc/rsyslog.conf
启用如下配置,
$ModLoad imudp $UDPServerAddress 127.0.0.1 $UDPServerRun 514
然后,你还需要加入如下日志定义,
echo 'local2.* /var/log/haproxy/haproxy.log' > /etc/rsyslog.d/haproxy.conf
根据以上配置的需求,我们使用如下命令创建日志目录,
mkdir -p /var/log/haproxy/ chown haproxy:haproxy -R /var/log/haproxy/ chmod 775 -R /var/log/haproxy/
2.4.2 重启服务使配置生效
systemctl restart rsyslog.service
然后,你可以使用如下命令查看倾听的端口,
netstat -W -neopa | grep 514 | grep udp
可见如下显示,
udp 0 0 127.0.0.1:514 0.0.0.0:* 0 54619 6028/rsyslogd off (0.00/0/0)
2.5 配置循环日志
vim /etc/logrotate.d/haproxy
配置修改如下,
/var/log/haproxy/haproxy.log {
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
2.6 其他配置
参阅文档
===================
官方文档
————————
https://www.haproxy.org/
日志配置文档
——————
https://serverfault.com/questions/645924/haproxy-logging-to-syslog
没有评论