如何通过NGINX重新路由SFTP流量

时间:2016-02-18 03:37:53

标签: nginx ftp sftp

我试图设置一个FTP子域,这样所有传入的SFTP请求(比如说)ftp.myname.com都会通过端口22路由到特定的内部服务器(比如)10.123.456。 / p>

如何使用nginx路由此流量?

我已经设置了SFTP服务器,可以直接SFTP到服务器,比如说:

sftp username@123.456.7890,工作正常。

问题在于,当我设置nginx将所有流量路由到ftp.myname.com时,它会连接,但密码会被拒绝。我没有问题将网络流量路由到我的其他子域名,例如dev.myname.com(带密码),但它不适用于SFTP流量:

server {
    listen 22;
    server_name ftp.myname.com;
    return .............
}

如何定义返回sting以使用密码路由流量?

连接是SFTP(通过端口22)。

由于

2 个答案:

答案 0 :(得分:1)

问@peixotorms:是的,可以。 nginx可以代理/负载均衡http以及tcp和upd流量,请参阅nginx流模块文档(在nginx main documentation page处,尤其是stream core module's documentation。)

答案 1 :(得分:0)

你不能在nginx(仅限http)上执行此操作,你必须使用像HaProxy这样的东西和一个指向服务器ip的子域的简单dns记录。

一些信息:http://jpmorris-iso.blogspot.pt/2013/01/load-balancing-openssh-sftp-with-haproxy.html