使用NGINX从FTP服务器获取服务器静态文件

时间:2019-03-25 12:45:02

标签: nginx ftp

我有一个本地网络,上面有一些旧的不安全服务。我使用带有客户端证书身份验证的nginx反向代理作为从Internet到此本地网络的安全入口点。到现在为止,我仅使用它来使用

代理HTTP服务器。
    location / {
        proxy_pass http://192.168.123.45:80/;
    }

一切正常。

但是现在我想提供静态文件,这些文件可以通过本地服务器上的FTP访问,我尝试了以下简单方法:

    location /foo {
        proxy_pass ftp://user:password@192.168.100.200:5000/;
    }

但这不起作用,而且我无法找到将HTTP请求代理到FTP请求的任何内容。

有什么办法吗?

1 个答案:

答案 0 :(得分:1)

Nginx不支持代理到FTP服务器。充其量,您可以代理套接字...这对于常规的旧FTP确实是个麻烦,因为每次请求文件时,它都会在随机端口上打开新的连接。

您可能可以做的是在某些本地路径上对该FTP服务器创建FUSE挂载,并像往常一样使用Nginx将该路径提供服务。为此,CurlFtpFS是实现这一目标的工具。教程:https://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem

(注意:出于安全性和可靠性考虑,强烈建议您尽可能从FTP迁移。请考虑使用SSH/SFTP。)