我使用Django作为web框架,然后Apache和Lighttpd的分别作为Web服务器和静态媒体服务器。莱蒂为所有我的静态内容很好,但我需要对其进行配置,以满足用户上传的新文件。 Lighttpd的是从Apache(Django的)一种在不同的机器上运行。创建一个目录,然后创建映像文件我的Apache的机器上得到执行,使其成为目前得到保存在同一台机器本身的我的Django代码。我希望我的静态媒体服务器,应该再由媒体服务器本身供职于该目录和文件的创建发生。 我使用os.mkdir和urllib.urlretrieve函数分别创建目录并保存Django的(Apache)的机器上的文件。反正是有,我可以做一些配置调整,以得到这些东西的工作或我需要在媒体服务器上编写脚本和Django的机器叫EM?

有帮助吗?

解决方案

最简单的回答是,用户上传到共享目录,这两个网络服务器可以访问。然后,它可以瞬间。如果您使用的UNIX(听起来),那么NFS是一个可能的解决方案。如果你认为你的网站将扩展到多台服务器一拉的Flickr,然后使用rsync推送到多个边缘服务器,甚至可能实施分片方案是另一种解决方案。

只是要小心。有很多的,取决于你的应用程序,你必须要考虑安全问题。

如果所有文件到可公开访问的目录也可能是用户能够猜测的其他民族文件的名称和下载。在这种情况下,你会想从Django的为他们服务与安全的在上面薄薄的一层。

从不信任你的用户!验证他们上传的是在一定的允许设定。在任何情况下,你应该让他们上传任何他们想做的。当然,除非你的用户是一个值得信赖的少数。即使是这样,你应该做一些检查。他们可能不应该上传.php文件的一个。你想给他们的最后一件事是你的服务器上运行任意脚本的能力。至少配置目录,只是服务的文件,而不是执行任何东西。

好运

其他提示

这是的东西,我使用rsync的那种。做任何你喜欢的主服务器上,并定期(或根据需要)的rsync推到静态服务器。 Rsync是比什么都可以用一个快速的黑客产生更快(和更多的其他功能)。

就因为我是偏执的我做我的所有客户的网站2台备份服务器,其中一个是在我的车库每小时的rsync的。我只是一个计时“的rsync -a”对一个1.7GB的客户网站(没有任何更改),并花了9.92秒挂钟时间,其中包括3次网络握手的rsyncing 3个不同的目录。有任何改变,很快,班戈,它的完成,完成的时间戳,所有者/组,等等。

这是惊人的,你如何能变得漠不关心有关服务器出现故障时,你得到真正的,多机,没有人参与的备份工作。我睡真正的好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top