我有一个本地网络,上面有一些旧的不安全服务。我使用带有客户端证书身份验证的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请求的任何内容。
有什么办法吗?
答案 0 :(得分:1)
Nginx不支持代理到FTP服务器。充其量,您可以代理套接字...这对于常规的旧FTP确实是个麻烦,因为每次请求文件时,它都会在随机端口上打开新的连接。
您可能可以做的是在某些本地路径上对该FTP服务器创建FUSE挂载,并像往常一样使用Nginx将该路径提供服务。为此,CurlFtpFS是实现这一目标的工具。教程:https://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem
(注意:出于安全性和可靠性考虑,强烈建议您尽可能从FTP迁移。请考虑使用SSH/SFTP。)