2016-10-29 65 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

相關問題