2014-07-20 32 views
0

我剛剛完成我的Django應用程序。所有這些月來,我一直在本地服務器上運行該應用程序使用如何部署中型Django應用程序

python manage.py runserver 

它運行在127.0.0.1上,只能在我的電腦上訪現在我完成了我的應用程序,我希望它可以被全世界使用。我試圖研究如何部署我的django應用程序,並且可能像我的情況中的大多數人一樣,我現在完全失去了。 'WSGI,AWS,WebFaction,域名,虛擬主機,共享主機,服務器,VPS供應商,RackSpace,Apache2等'這些詞都在我的腦海中飛舞。

的第一篇文章我碰到了凸輪這一個: How to setup Django website in Amazon EC2 hosting?

的帖子中寫道:亞馬遜EC2服務器都不錯,但建議WebFaction/Dreamhost的來代替。我決定選擇Amazon EC2而不是WebFaction/DreamHost。我谷歌關於亞馬遜EC2,然後我發現自己閱讀比較有關AWS和VPS供應商如RackSpace的比較。然後我同意使用Amazon EC2而不是RackSpace。然後我想,我究竟在哪裏購買域名?我知道goDaddy真的很受託管domians的歡迎,所以我研究這一點,並且我意識到godaddy不支持Django。我google'd哪個虛擬主機公司支持Django,並且我再次遇到了WebFaction。那麼等一下,我用WebFaction來註冊域名和亞馬遜來主持這個網站?我看看WebFaction的價格,他們給出帶寬,磁盤空間,服務器位置等的價格。我谷歌AWS的價格,他們談論完全相同的事情:服務器的位置,空間等。在這一點上,我沒有甚至知道WebFaction和AWS是否完成了同樣的事情,並且我應該選擇其中一個,還是WebFaction只是爲服務器託管域和AWS?然後我決定研究一下服務器,希望能夠找到關於亞馬遜服務器的工作原理以及與域名託管站點的關係。相反,我發現自己閱讀了關於Apache的內容。嗯,所以Apache現在是另一種選擇了嗎?我google了Apache服務器和AWS之間的關係,並發現我可以在AWS上設置Apache?那麼我需要WebFaction,AWS和Apache來部署我的Django應用程序嗎?

我試着做更多關於部署Django應用程序的研究,並且遇到了一篇關於WSGI的文章。看起來好像我做的研究越多,我就越困惑。所以這是我需要你幫助的地方:

Django應用程序基本上是一個'博客'網站,它允許用戶創建帳戶,上傳圖片,評論和類似圖片,關注其他用戶,發佈帖子(只包含文本和圖像),對帖子和類似帖子發表評論。 Django應用程序面向約1500名用戶(我估計前兩個月內約有1500名用戶)的受衆。該應用程序也將安裝在Android和iPhone應用程序商店(通過WebView)。我的hostOS是windows 8,但我下載了一個虛擬機(運行Lubuntu),並使用Django 1.5和Python 2.7在Lubuntu中完成了所有的Django內容,並且還必須安裝PIL和Pillow。我使用了PostgreSQL數據庫。有了這些細節,我應該如何託管我的網站?

我不想說'我應該使用哪些服務器',因爲有些人會說'亞馬遜',有些人會說'DreamHost',有些人可能會說'買域名,然後用戶亞馬遜',有些甚至可能會說開始談論WSGI和Apache,讓我感到非常困惑。

我需要採取哪些措施來託管我的1500用戶應用程序?一旦應用程序達到1500個用戶並開始高於此值,那麼我會考慮切換到更大的服務器,但對於前1500個用戶,我應該在哪裏購買域名並託管該站點?該網站需要在未來3周內投入使用(因此,如果VPS供應商或亞馬遜EC2強烈推薦,我可以花一整週的時間來了解它們)。我只想知道是否有更推薦的,更簡單的解決方案,而不是直接跳入VPS供應商或購買域名並使用Amazon EC2服務器。

編輯:這是否應該在ServerFault上呢?

+2

http://www.fullstackpython.com/它會幫助你。查看部分:「我已經構建了一個Python Web應用程序,我需要部署它。」 –

回答

1

這裏有幾個層次,你們都需要,但起初可能會讓人困惑。要在生產環境中設置Django站點,您需要:

  • 服務器硬件。
  • 網絡服務器軟件。
  • Python連接器(WSGI)。
  • 註冊域名與DNS記錄。

託管服務可讓您訪問服務器硬件。您在物理服務器上租用物理服務器或虛擬環境。大多數託管平臺包括域名註冊和管理DNS記錄,但有些可能需要您在別處尋求這些服務。

爲了讓服務器在收到請求時真正​​提供http響應,它必須運行一個web服務器進程。 Apache和Nginx就是這樣的web服務器。 WSGI是允許web服務器與Python應用程序通信的標準。你需要實現這個以連接到你的Django應用程序。有些選擇是gunicorn,uWSGI和Apache的mod_wsgi。

有了這些信息,您應該能夠理解大多數解釋如何部署Django應用程序的文章。除了關於WSGI的部分以外的所有內容也適用於任何其他網站,而不僅僅是Django。

+0

針對我的情況(一個應用程序在前兩個月將會收到大約1500個用戶,允許用戶上傳圖片..我使用Lubuntu,Django 1.5和Python 2.7開發了該應用程序,並且還必須安裝Pillow和PIL ),會推薦我使用WebFaction或Amazon服務器硬件? – user2719875

+0

@ user2719875我真的不知道 - 任何一個人都會工作。但是這個問題超出了StackOverflow的範圍。 – knbk