一、概述
目前由于行内网络规划以及安全的原因,不能直接从应用区域直接访问第三方SFTP文件服务器,只能允许代理服务器网络区域出去,也就是SFTP正向代理转发到第三方的SFTP文件服务器,而我们使用的代理应用软件则是开源的nginx。以前搞过正向代理HTTP,而没有尝试过正向代理SFTP,其实也就是TCP协议。为了满足应用需求,我们需要搭建nginx正向代理SFTP服务应用。
nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。这完全就是抢HAproxy份额的节奏,鉴于nginx在7层负载均衡和web service上的成功,和nginx良好的框架,stream模块前景一片光明。
ngx_stream_core_module模块
是模拟反代基于tcp或udp的服务连接,即工作于传输层的反代或调度器
二、Nginx编译安装步骤
1、首先,要准备的是软件,可以在网上下载,http://nginx.org/en/download.html,我安装的是
nginx-1.16.0 pgp |
参考安装教程
1.https://www.jianshu.com/p/e236985fecd7
2.https://www.jianshu.com/p/5dcd1e027e17
三.在另一台服务器上安装SFTP,服务器IP是 192.168.35.13
四.接着修改配置文件,在/usr/local/nginx/conf目录下,找到nginx.conf配置文件
添加以下内容
新增这个模块:
stream {
upstream sftp {
hash $remote_addr consistent;
server 192.168.35.13:22 max_fails=3 fail_timeout=60s;
}
server {
listen 90; #端口可以自己定义
proxy_connect_timeout 60s;
proxy_timeout 30s;
proxy_pass sftp;
}
}
PS:这个模块一定要放在http外面
五.eclipse导入maven项目,修改配置文件,maven版本(apache-maven-3.5.4.rar)
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.42</version>
</dependency>
六.测试
-
原文地址:https://www.cnblogs.com/pinghengxing/p/11043674.html