Nginx代理sftp配置

最近有几个项目组的同事都在咨询nginx代理sftp的问题,那今天就写下此博文以供大家参考。献丑了!

0. 环境

主机名IP角色
nginx192.168.10.182代理服务器
sftp_server192.168.10.183sftp服务器
client192.168.10.185测试服务器

1. nginx安装

登陆nginx服务器192.168.10.182安装nginx服务:

#安装依赖
yum install gcc pcre-devel openssl-devel -y
#下载nginx安装包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
#解压nginx
tar –zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
#编译安装
./configure --prefix=/home/hhbank/nginx --with-http_stub_status_module --with-http_ssl_module  --with-http_realip_module --with-stream
make && make install	

2. 配置sftp代理

仍然在nginx服务器操作:

stream {  
        #sftp_stream
        upstream sftp_srv { #sftp_srv为组名,可自定义命名
                hash $remote_addr consistent; 
                server 192.168.10.183:22 max_fails=3 fail_timeout=60s; 
                #192.168.10.183:22 为sftp服务器和端口
        }
        #sftp代理
        server {
                listen 8000;
                #8000端口为sftp服务的代理端口,客户端通过nginx代理登陆sftp服务器将通过此端口。
                proxy_connect_timeout 300s; 
                proxy_timeout 300s;
                proxy_pass sftp_srv;
                #sftp_srv就是上面配置的upstream sftp_srv
        }
}

将以上配置复制到nginx.conf中,位置如下图所示:

sftp_ng.png

3. 验证

在192.168.10.183sftp服务器上创建一个文件,用于客户端登陆验证

[root@sftp_server ~]# touch  183

在192.168.10.185客户端服务器通过nginx代理服务器登陆sftp_server服务器:

[root@client ~]# sftp -P8000 root@192.168.10.182  #-P8000为nginx sftp代理端口 192.168.10.182为nginx服务器
root@192.168.10.182's password: 
Connected to 192.168.10.182.
sftp> ls
183                  anaconda-ks.cfg      fastdfs-5.05         
libfastcommon-1.0.7  
sftp> 

登陆之后ls可以看到在183上创建的“183”文件,测试成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

范一刀

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值