使用Django的Lighttpd和Apache配置需要帮助

我使用Django作为Web框架,然后分别使用Apache和Lighttpd作为Web服务器和静态媒体服务器。 Lighty为我的所有静态内容提供良好和良好的服务,但我需要将其配置为服务用户上传的新文件。 Lighttpd运行在与Apache(Django)不同的机器上。我的django代码创建一个目录然后创建一个图像文件在我的Apache机器上执行,使它当前被保存在同一台机器上。我希望这个目录和文件创建发生在我的静态媒体服务器上,然后由媒体服务器本身提供服务。 我分别使用os.mkdir和urllib.urlretrieve函数在Django(Apache)机器上创建目录和保存文件。无论如何我可以做一些配置调整来使这些东西工作或我需要在媒体服务器上编写脚本并从Django机器调用em?     
已邀请:
最简单的答案是用户上传到两个Web服务器都可以访问的共享目录。然后它立即可用。如果您使用unix(听起来像它),那么NFS是一种可能的解决方案。如果您认为您的站点将扩展到多个服务器,那么使用rsync推送到多个边缘服务器甚至可能实现分片方案是另一种解决方案。 小心点根据您的应用程序,您需要考虑很多安全问题。 如果所有文件都转到可公开访问的目录,则用户可以猜测其他人文件的名称并下载它们。在这种情况下,你需要在Django上为它们提供一层薄薄的安全性。 绝不相信您的用户!验证他们上传的内容是否在某个允许的集合中。在任何情况下,您都不应允许他们上传他们想要的任何内容。除非你的用户当然是少数人。即便如此,你应该做一些检查。他们可能不应该上传.php文件。您想要给他们的最后一件事是能够在您的服务器上运行任意脚本。至少将目录配置为仅提供文件而不执行任何操作。 祝好运     
这是我使用rsync的那种东西。在主服务器上执行任何您喜欢的操作,然后定期(或按需)将rsync推送到静态服务器。 Rsync比使用快速黑客可以生成的任何东西更快(并且功能更强大)。 仅仅因为我是偏执狂,我每小时都会将所有客户站点的rsync用于2个备份服务器,其中一个位于我的车库中。我只是对一个1.7GB的客户站点(没有任何更改)定时“rsync -a”,并且花了9.92秒的挂钟时间,包括3个网络握手用于rsyncing 3个不同的目录。如果有任何变化,presto-bango,它已经完成,包括时间戳,所有者/团体等。 令人惊讶的是,当你获得真正的,多机器,无人参与的备份工作时,你可以成为服务器故障的祸首。我睡得很好。     

要回复问题请先登录注册