1.概述
目前由于行内网络规划以及安全的原因,不能直接从应用区域直接访问第三方SFTP文件服务器,只能允许代理服务器网络区域出去,也就是SFTP正向代理转发到第三方的SFTP文件服务器,而我们使用的代理应用软件则是开源的nginx。
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版本
#wgethttp://nginx.org/download/nginx-1.16.1.tar.gz
#tar -xvf nginx-1.16.1.tar.gz && cd nginx-1.16.1
2.安装依赖包
#yum -y install gcc gcc-c++ autoconf automake
#yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
#./configure --prefix=/home/deploy/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-stream
#make && make install
3.安装完毕,可以查看下模块安装是否成功
#/home/deploy/nginx/sbin/nginx -V
修改配置文件
vim nginx.conf
stream {
upstream sftp {
hash $remote_addr consistent;
server 192.168.0.16:22 max_fails=3 fail_timeout=60s; #要转发的sftp地址端口
}
server {
listen 8080;
proxy_connect_timeout 60s;
proxy_timeout 30s;
proxy_pass sftp;
}
}
注释:
这个模块一定要放在http外面
max_fails=3 fail_timeout=60s; 含义
将端口8080反向代理sftp组的192.168.0.16:22,最大失败次数为3,超时时间为60秒;
./nginx -t 检查配置文件