网站部署——管理用户上传的内容?

网站部署——管理用户上传的内容?

我的职业是程序员,但公司需要我担任“服务器管理员”。

我们正在考虑放弃旧式的“通过 FTP 上传更新站点”部署方式。让 Web 服务器从版本控制中检出最新代码库并将其放入文件夹中,并让“当前”符号链接指向最新检出(允许通过更改符号链接轻松返回到旧版本)似乎是我们想要的方式。

但我有一个问题:处理用户上传的内容的良好做法是什么?这些内容不在版本控制中。我有几个处理这个问题的想法,但什么是明智、可接受的做法?

答案1

如果上传的内容全部在一个目录中,我可以看到两种方法。

  • 将上传目录的符号链接设为版本控制。让该符号链接指向实际上传的目标目录。
  • 在您的网站配置中设置一个别名,以指向正常网站根目录之外的实际目录。

第一种方法不需要实际更改代码,而第二种方法对我来说似乎更简洁一些。

答案2

用户上传的内容应该不是就像您提到的那样,将它们放入版本控制中。但是,它们仍然应该备份。

我建议简单地设置一个每日 cron 备份脚本,该脚本将执行 rsync、tar、rdiff-backup 或其他任何操作,然后将数据上传到另一台服务器。当然,您采取的方法取决于数据的重要性;对于真正重要的信息,您可能需要设置即时复制(尤其是对于数据库:阅读数据库复制)。

答案3

我只处理用户内容的图像和头像。以及负载平衡的 Web 服务器。我将所有上传的内容委托给一个 Web 服务器,该服务器每天备份。然后我在内容服务器上设置一个 rsync 服务器。Web 服务器每分钟通过 rsync 在 cronjob 上请求新文件。然后复制并备份所有文件!

答案4

我怀疑你可能有点想多了。虽然首选方案是简单地将 Web 内容和上传的文件隔离开来,但你也可以将上传目录(和子目录?)从版本控制中排除。

相关内容