Debian/Ubuntu安装haproxy端口转发工具及优化配置、使用教程
HAProxy,全称是 High Availability Proxy,是一款开源的负载均衡代理软件。它主要用于提高服务器应用的可用性和性能,可以在 TCP 和 HTTP 应用层上分配客户机请求到多个数据中心或服务器。由于其高可靠性、高性能、丰富的功能和简单的配置,HAProxy 广泛应用于提供高可用性、负载均衡和代理服务器方案。
以下是一些 HAProxy 的关键特性:
1. 负载均衡:
- HAProxy 能够将入站流量分配到多个后端服务器上,支持多种负载均衡算法,如轮询(round-robin)、最小连接数(least connections)和源地址哈希(source hashing)等。
2. 高可用性:
- 能够检测后端服务器的健康状态,并自动从加载均衡池中剔除失效服务器,保证高可用性。
- 支持热配置和平滑重载,无需停机就可以应用新配置。
- 支持多种高可用性解决方案,如 Linux 的 Keepalived,用于故障转移(failover)和虚拟IP管理。
3. TCP 和 HTTP 的应用层协议支持:
- 不仅能处理传统的 TCP 流量,也能够理解和优化 HTTP 流量,包括针对 HTTP 请求和响应的操作。
4. 安全性:
- 提供了数据传输过程中的SSL/TLS终端支持,能进行加密和解密,从而保护数据传输的安全。
- 支持 ACL(访问控制列表),能够基于多种条件(例如 IP 地址、URL 或者其他请求标头等)做出转发决策。
5. 性能优化:
- 针对 HTTP 应用,支持内容压缩和缓存来减轻服务器负担和提升性能。
- 能够有效地处理数十万同时连接,适用于高流量网站和应用。
6. 监控与统计:
- 提供一个统计报告页面,用于实时监控 HAProxy 的状态和性能。
- 通过日志、统计套接字和第三方集成(如 Datadog、Prometheus)等工具,可以集成到更广泛的监控解决方案中。
由于这些特性,HAProxy 被广泛应用于数据中心,用于企业级的网站和服务,如 GitHub、Stack Overflow、Reddit 以及其他需要高可靠性和负载均衡的应用场景中。
以上是haproxy介绍,接下来我以debian11为例,安装haproxy以及一下一些优化好的配置分享给大家:
安装:
apt install haproxy -y
以上安装的是debian的默认haproxy版本我安装后的是2.2版,如果需要其他版本请前往官网获取apt源:https://haproxy.debian.net
设置开机自启动:
systemctl enable haproxy
配置haproxy:
cd /etc/haproxy
mv haproxy.cfg haproxy.cfg.bak
vim haproxy.cfg
然后输入下面的配置:wd保存:
global
ulimit-n 100000 # 设置操作系统限制,允许HAProxy打开更多的文件描述符
log /dev/log local0 # 设置日志记录到本地系统日志设施0
log /dev/log local1 notice # 设置日志记录级别到通知,仅限于本地系统日志设施1
chroot /var/lib/haproxy # 出于安全原因,锁定进程到指定的目录
pidfile /var/run/haproxy.pid # 指定进程ID文件路径
user haproxy # 指定运行用户为haproxy
group haproxy # 指定运行用户组为haproxy
daemon # 以守护进程方式运行HAProxy
maxconn 40000 # 设置每个进程的最大并发连接数
tune.bufsize 32768 # 增加每个会话的缓冲区大小,以适应大型请求和响应
tune.maxrewrite 1024 # 增加用于重写请求和响应的缓冲区大小
tune.rcvbuf.client 0 # 设置客户端接收缓冲区大小为系统默认
tune.rcvbuf.server 0 # 设置服务器接收缓冲区大小为系统默认
tune.sndbuf.client 0 # 设置客户端发送缓冲区大小为系统默认
tune.sndbuf.server 0 # 设置服务器发送缓冲区大小为系统默认
stats socket /var/lib/haproxy/stats level admin # 设置统计信息UNIX套接字路径,只有管理员才能访问
defaults
log global # 使用全局配置的日志设置
mode tcp # 设置工作模式为TCP
option dontlognull # 不记录健康检查产生的空连接
timeout connect 3000 # 设置连接超时时间为3秒
timeout client 50000 # 设置客户端连接超时为50秒(根据实际流量调整)
timeout server 50000 # 设置服务器连接超时为50秒(根据实际流量调整)
maxconn 40000 # 设置每个进程允许的最大并发连接数
# 如果工作模式是HTTP,打开下面的配置
# option http-server-close # 开启HTTP连接关闭模式,以减少连接数和提升性能
# option forwardfor # 添加X-Forwarded-For头部,用于记录原始IP地址
# compression algo gzip # 启用GZIP压缩
# compression type text/html text/plain text/css application/javascript application/json
listen stats
bind :9000 # 监听端口,用于统计信息页面
mode http # 模式设置为HTTP,用于统计信息页面
stats enable # 启用统计报告页面
stats uri /status # 设置统计页面的访问URI
stats hide-version # 隐藏HAProxy版本信息以提高安全性
stats auth admin:admin # 设置访问统计页面的用户名和密码,应更换复杂密码
frontend novel #前端
bind *:25565 tfo # 在所有网络接口的25565端口上监听,并启用TCP快速打开特性
default_backend novel # 指定默认的后端服务器组
backend novel #后端
balance leastconn # 设置负载均衡算法为最少连接,帮助均匀分配连接
option tcp-check # 启用TCP级别的健康检查,帮助检测服务器是否在线
server n1 IP地址:端口 check maxconn 20480 # 指定后端服务器,并设置健康检查和最大并发连接数
最后检测配置是否有错误再重启haproxy:
haproxy -c -f /etc/haproxy #检测配置
systemctl restart haproxy.service #重启haproxy
好了,教程到此结束。
版权声明:
作者:IDC评估网
链接:https://www.idceval.com/240.html
文章版权归作者所有,未经允许请勿转载。
THE END