我有一个本地网络,上面有一些旧的不安全服务。我使用带有客户端证书身份验证的 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/