2016-10-29 66 views
1

我关心Django中的媒体文件。我只是想知道为什么有些教程建议为媒体创建一个不同的Server实例?Django:静态/媒体文件不同的服务器

  1. 这有什么好处?
  2. 它对我的网站有很大的影响或速度变化吗?
  3. 如果我要有一个不同的媒体服务器,什么是规格(RAM的内存,磁盘空间等)?

同样的问题适用于Postgre。


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

的Python 2.7,Django的1.8 nginx的和uWSGI

Compute Engine的实例:N1-标准2(2个vCPU,7.5 GB内存)

回答

2

你平时考虑将它运行蟒蛇你的应用服务器,您数据库和适当的静态和媒体文件出于不同的原因。

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

您的静态文件和/或媒体比例除了您的应用程序服务器和数据库。如果您的应用程序服务器无法处理负载,则不能自动应用于数据库或静态/媒体内容,反之亦然。这总是取决于你的用例。分离前面的东西会让你更加灵活。

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

正如你可能想要运行的staticfiles一款非常轻便的设置中django docs Web服务器中所提到的,没有任何代码执行从(不Python和PHP或什么 - 只是静态文件)

的硬件要求依赖在你的负载和你会选择的软件上。如果你不希望有高负载,并且只有一台服务器可用 - 从一台主机提供整个服务器没有任何问题。正如已经告诉过的,它总是取决于你想要达到什么以及你(或者你的客户)对你的设置有哪些要求。

+0

感谢您对@dahrens的解释。现在我唯一关心的是如何确定我应该选择哪些硬件要求。我对这个问题并没有什么想法。 – aldesabido

+0

这很难说,没有一个线索你的项目是什么和你期望什么样的负载:)上面描述的主机应该能够一起运行 - 如果没有太多的事情发生 - 如果整个事情不是批评你可能只是尝试。如果你计划更大的事情 - 你可能希望从分开的方法开始,因为这从一开始就给你更多的灵活性。 – dahrens

相关问题