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

标签 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 请求的东西。
有没有办法做到这一点?

最佳答案

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

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

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

关于nginx - 使用 NGINX 从 FTP 服务器获取静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55338127/

相关文章:

url - 使用 Filezilla 上传时如何找出文件的 URL

vb.net - FTP 文件中的特殊字符

authentication - Nginx:是否可以从 auth_request 获取返回的响应

laravel - Laradock 404 未找到带有存储符号链接(symbolic link)的文件

javascript - nginx : deactivate cache for html single page app

java - 多线程FTP下载

ftp - 通过 Internet 共享文件 - WebDAV/SMB/FTP

objective-c - NSStream 不发送所有数据

python - 虚拟主机模式下 nginx + uwsgi 的问题,运行 django 应用程序

nginx - 重复的 MIME 类型 "text/html"?