Django:静态/媒体文件不同的服务器

时间:2016-10-29 10:52:11

标签: python django nginx

我关注Django中的媒体文件。我只是想知道为什么有些教程建议为媒体使用不同的Server实例?

  1. 这有什么好处?
  2. 我的网站是否会产生重大影响或速度变化?
  3. 如果我要为媒体设置不同的服务器,那么规格是什么(内存数量,磁盘空间等)?
  4. 同样的问题适用于Postgre。

    目前我的应用程序正在GCE中运行。

    Python 2.7,带有nginx和uWSGI的Django 1.8

    计算引擎实例:n1-standard-2(2个vCPU,7.5 GB内存)

1 个答案:

答案 0 :(得分:2)

您通常会考虑将运行python的应用服务器,数据库以及正确的静态和媒体文件分开。

可扩展性的一个原因是 - 如果您的网站负载过高,您可以轻松检测瓶颈并设置另一台服务器来共享负载。

您的应用服务器和数据库之外的静态文件和/或媒体比例。如果您的应用服务器无法再处理负载,则不得自动应用于数据库或静态/媒体内容,反之亦然。这总是取决于您的使用案例。将前面的东西分开可以让你更灵活。

另一个原因是安全。如果有安全漏洞,例如django代码,它使攻击者可以在主机上运行他/她想要的任何代码,而其他东西不能直接在主机上使用。

django docs中所述,您可能希望为静态文件运行非常轻量级的设置,而无需在Web服务器中执行任何代码(没有python,php或其他任何东西 - 只是静态文件)

硬件要求取决于您的负载和您选择的软件。如果您不期望高负载并且只有一台服务器可用 - 从一台主机提供全部内容没有任何问题。如前所述,它总是取决于您想要达到的目标以及您(或您的客户)对您的设置的要求。