一、引言
前面我们有讲过如何使用Nginx作SFTP服务器的代理,详见【Nginx SFTP代理】。其实除了使用Nginx之外,还可以通过HAProxy作为SFTP代理用,至于SFTP概念,这里不作过多介绍,各位读者自行百度比我个人陈述要更好,这里只做高质量的操作讲解。
| IP | 角色 | 描述 |
|---|---|---|
| 192.168.1.102 | HAProxy | 代理服务 |
| 192.168.1.154 | SFTP服务器 | |
| 192.168.1.196 | 客户端 |
二、详解
1、HAProxy部署
我们使用容器化来部署HAProxy服务,因为这种部署方式便于管理,与主机隔离。
# 创建安装目录>>mkdir-p/opt/software/haproxy# 创建docker-compose.yml>>cd/opt/software/haproxy>>vimdocker-compose.yml# 内容如下,直接复制粘贴即可,无需修改---services:haproxy:image:haproxy:3.4.0container_name:haproxyuser:"99:99"restart:unless-stoppednetwork_mode:hostvolumes:-./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro-/etc/localtime:/etc/localtime:roenvironment:TZ:Asia/Shanghai...2、准备挂载所需的文件
# 创建配置文件代理sftp>>cd/opt/software/haproxy>>vimhaproxy.cfg# 内容如下,根据实际IP修改即可global log stdout format raw local0 maxconn 4096 # 全局最大并发连接数 daemon # 后台运行模式 defaults log global # 继承日志配置 mode tcp # 使用TCP代理 option tcplog # 记录TCP详细日志 timeout connect 10s timeout client 1h timeout server 1h # 前端虚拟节点 frontend sftp_front bind *:1999 # 前端监听 mode tcp default_backend sftp_back # 转发到后端 sftp_back # 后端虚拟节点 backend sftp_back mode tcp # 后端采用TCP协议 server sftp1 192.168.1.154:2022 check # 实际的后端SFTP服务器 listen stats bind *:8004 mode http # 监控页面用 HTTP 模式 stats enable # 开启监控功能 stats uri /stats # 监控页面 URL(访问路径) stats refresh 10s stats auth admin:admin123 # 监控页面登录账号密码3、启动HAProxy服务
# 授权>>chown-R99:99 /opt/software/haproxy# 准备镜像文件>>略# 启动HAProxy>>cd/opt/software/haproxy>>docker-composeup-d4、客户端验证连接
# 格式>>sftp-P[HAProxy前端监听端口]<user>@[HAProxy服务器]>>sftp-P1999common@192.168.1.102# 访问监控页面>>http://192.168.1.102:8004/stats