FTP虚拟主机代理

FTP虚拟主机代理

我正在设置 OpenVZ 以将我的几个站点彼此分开。我有一个外部 IP 地址,用于为我的站点提供服务。我使用 nginx 将 http 请求代理到每个容器中的 nginx,然后 nginx 将它们代理到 apache 或 fast-cgi 并提供其静态内容。我希望有类似于 FTP 的 nginx 的东西,根据其主机名将请求代理到容器内的相应 FTP 服务器。基于 DNS 主机名的 FTP 协议中是否可以进行虚拟托管?

PS 当然,我可以在全局区域的 FTP 服务器配置中设置与 /vz/private/.... 对应的路径,但这不是一个很优雅的解决方案。共享主机的最佳实践是什么?

答案1

您无法通过站点的域名重定向 FTP 流量,因为 FTP 不通过 HTTP 运行。幸运的是,有 WebDAV - FTP 的替代品,它通过 HTTP 运行。WebDAV 只是一个标准,但许多 Web 服务器都实现了它。例如 Apache 有mod_dav

看起来使用 Nginx 代理 WebDAV 有点复杂: http://blog.agoragames.com/2009/03/20/webdav-nginx-play-nice/

我做了(HTTP 前端)而且很简单。

这是我的 Pound 配置文件的样子。

# WebDAV
ListenHTTP

  Address mylab.edu
  Port    818

  xHTTP     3

  Service
    HeadRequire "^Host: anotherlab\.edu:818$"
    BackEnd
      Address openvzhost1
      TimeOut 60
      Port    818
    End
  End

  Service
    HeadRequire "^Host: anotherlab2\.edu:818$"
    BackEnd
      Address openvzhost1
      TimeOut 60
      Port    818
    End
  End
End

不要在头节点上运行 FTP 服务器。这可能不太安全。

最佳做法是不要在 OpenVZ 头节点上运行任何服务。

相关内容