使用 nginx 的 Ftp 代理

使用 nginx 的 Ftp 代理

我正在尝试使用 Nginx 设置一个简单的 ftp 代理。目前我的配置如下:

server {
    listen 21;
    server_name 52.49.13.91;
    location / {
        proxy_pass ftp://my.ftpsite.com/;
    }
}

server {
    listen 20;
    server_name 52.49.13.91;
    location / {
        proxy_pass ftp://my.ftpsite.com/;
    }
}

但是我从 nginx 收到以下错误:invalid URL prefix in /etc/nginx/sites-enabled/ftp-proxy:5

nginx 能做到这一点吗?我该如何实现呢?

答案1

nginx 可以执行 SMTP/POP3/IMAP:
https://www.nginx.com/resources/admin-guide/mail-proxy/

以及 HTTP:
https://www.nginx.com/resources/admin-guide/reverse-proxy/

和 PROXY 协议:
https://www.nginx.com/resources/admin-guide/proxy-protocol/
http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt

也许您可以使用自定义模块来支持 ftp:
https://github.com/yaoweibin/nginx_tcp_proxy_module

但默认情况下nginx不支持FTP作为代理协议。

答案2

使用上游 nginx 模块。它可以上游 tcp 流。但您需要在配置中描述所有端口 - 命令和数据。

相关内容