我正在尝试使用 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 流。但您需要在配置中描述所有端口 - 命令和数据。