我关注Django中的媒体文件。我只是想知道为什么有些教程建议为媒体使用不同的Server实例?
同样的问题适用于Postgre。
目前我的应用程序正在GCE中运行。
Python 2.7,带有nginx和uWSGI的Django 1.8
计算引擎实例:n1-standard-2(2个vCPU,7.5 GB内存)
答案 0 :(得分:2)
您通常会考虑将运行python的应用服务器,数据库以及正确的静态和媒体文件分开。
可扩展性的一个原因是 - 如果您的网站负载过高,您可以轻松检测瓶颈并设置另一台服务器来共享负载。
您的应用服务器和数据库之外的静态文件和/或媒体比例。如果您的应用服务器无法再处理负载,则不得自动应用于数据库或静态/媒体内容,反之亦然。这总是取决于您的使用案例。将前面的东西分开可以让你更灵活。
另一个原因是安全。如果有安全漏洞,例如django代码,它使攻击者可以在主机上运行他/她想要的任何代码,而其他东西不能直接在主机上使用。
如django docs中所述,您可能希望为静态文件运行非常轻量级的设置,而无需在Web服务器中执行任何代码(没有python,php或其他任何东西 - 只是静态文件)
硬件要求取决于您的负载和您选择的软件。如果您不期望高负载并且只有一台服务器可用 - 从一台主机提供全部内容没有任何问题。如前所述,它总是取决于您想要达到的目标以及您(或您的客户)对您的设置的要求。