热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nginx代理sftp

最近需要使用一个sftp协议的代理服务器,查了一下nginx1.9之后已经支持了,尝试一下:The ngx_stream_core_module moduleisavailable

最近需要使用一个sftp协议的代理服务器,查了一下nginx1.9之后已经支持了,尝试一下:

The ngx_stream_core_module module is available since version 1.9.0. This module is not built by default, it should be enabled with the --with-stream configuration parameter.

nginx从1.9.0版本开始,新增了ngx_stream_core_module模块。默认编译的时候该模块并未编译进去,需要编译的时候添加--with-stream,使其支持stream代理。

[root@baseline opt]# mkdir nginx
[root@baseline opt]# cd nginx/
[root@baseline nginx]# wget http://nginx.org/download/nginx-1.10.3.tar.gz
--2019-04-10 13:38:06--  http://nginx.org/download/nginx-1.10.3.tar.gz
正在解析主机 nginx.org (nginx.org)... 2001:1af8:4060:a004:21::e3, 62.210.92.35, 95.211.80.227
正在连接 nginx.org (nginx.org)|2001:1af8:4060:a004:21::e3|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:911509 (890K) [application/octet-stream]
正在保存至: “nginx-1.10.3.tar.gz”

100%[================================================================================================================================>] 911,509      357KB/s 用时 2.5s   

2019-04-10 13:38:09 (357 KB/s) - 已保存 “nginx-1.10.3.tar.gz” [911509/911509])

[root@baseline nginx]# tar -xvf nginx-1.10.3.tar.gz
......

  [root@baseline nginx]# cd nginx-1.10.3/
  [root@baseline nginx-1.10.3]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module

编译检查,我这没有缺失(如果有缺,却失什么装什么)

 

  [root@baseline nginx-1.10.3]#make

  ......

    make[1]: 离开目录“/opt/nginx/nginx-1.10.3”

  #安装

  [root@baseline nginx-1.10.3]#make install

  [root@baseline nginx-1.10.3]# cd /usr/local/nginx/

  ##启动nginx

  [root@baseline nginx]# ./sbin/nginx

  我在我的window装了一个freeSSHd  作为sftp服务器。配置如下:

nginx代理sftpnginx代理sftp

然后启动

nginx代理sftpnginx代理sftp

 配置好sftp之后,测试一下:

[root@baseline nginx]# sftp -P 21  mysftp@192.168.1.180 
The authenticity of host '[192.168.1.180]:21 ([192.168.1.180]:21)' can't be established.
RSA key fingerprint is SHA256:iM1dwfz+JzZrvmiYbmH3tS3F8ad1wutYxFWtnv8BWu8.
RSA key fingerprint is MD5:5b:1f:b4:99:1c:b4:4d:24:05:a5:16:79:4d:68:3b:7f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.1.180]:21' (RSA) to the list of known hosts.
mysftp@192.168.1.180's password: 
Permission denied, please try again.
mysftp@192.168.1.180's password: 
Connected to 192.168.1.180.
sftp> ls

之后修改nginx配置文件 nginx.conf:

在http节点上添加紫色代码:

events {
    worker_connections  1024;
}
stream { 
    upstream sftp { 
    hash $remote_addr consistent; 
    server 192.168.1.180:21 max_fails=3 fail_timeout=60s; 
    }
    server { 
        listen 90; #端口可以自己定义
        proxy_connect_timeout 60s; 
        proxy_timeout  30s; 
        proxy_pass sftp; 
    } 
}

http {
。。。。。。。。。

上述代码意思:nginx 在90端口监听 tcp 并转发请求到upstream 为sftp的主机即 192.168.1.180:21 

修改之后  nginx -s reload 一下

再试:

[root@baseline nginx]# sftp -P 90  mysftp@192.168.1.19
The authenticity of host '[192.168.1.19]:90 ([192.168.1.19]:90)' can't be established.
RSA key fingerprint is SHA256:iM1dwfz+JzZrvmiYbmH3tS3F8ad1wutYxFWtnv8BWu8.
RSA key fingerprint is MD5:5b:1f:b4:99:1c:b4:4d:24:05:a5:16:79:4d:68:3b:7f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.1.19]:90' (RSA) to the list of known hosts.
mysftp@192.168.1.19's password: 
Connected to 192.168.1.19.
sftp> ls
ccc.txt          ccd.txt          confirmPlat.py   file

ok


推荐阅读
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 本文探讨了如何通过编程手段在Linux系统中禁用硬件预取功能。基于Intel® Core™微架构的应用性能优化需求,文章详细介绍了相关配置方法和代码实现,旨在帮助开发人员有效控制硬件预取行为,提升应用程序的运行效率。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
  • 在C#编程中,设计流畅的用户界面是一项重要的任务。本文分享了实现Fluent界面设计的技巧与方法,特别是通过编写领域特定语言(DSL)来简化字符串操作。我们探讨了如何在不使用`+`符号的情况下,通过方法链式调用来组合字符串,从而提高代码的可读性和维护性。文章还介绍了如何利用静态方法和扩展方法来实现这一目标,并提供了一些实用的示例代码。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • Docker镜像加载优化:开发者的高效实践指南
    Docker镜像加载优化:开发者的高效实践指南 ... [详细]
author-avatar
宝宝717917
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有