2013-08-04 151 views
20

我想部署一個django站點(它是github上的開源edx代碼)。Apache + mod_wsgi vs nginx + gunicorn

我面對使用

  1. 阿帕奇與mod_wsgi的
  2. nginx的與gunicorn之間選擇

我已經使用的Apache與mod_wsgi的,它是足夠的冷靜,但我有與沒有經驗第二選擇。

在速度方面以及在某種程度上,易用性這些方面哪個更好?

注:我需要運行兩個不同的django站點,比如端口80和81,並從兩個不同的子域訪問它們。

+1

Apache與gunicorn。你的網絡服務器應該是一個純粹而簡單的HTTP代理,並且不應該知道任何關於gunicorn的信息 - 所有的apache都有要代理的端口號。你的應用服務器根本不應該彼此瞭解,或者他們正在生成一個HTTP反向代理。純粹是因爲mod_proxy_http有docs和nginx ...坦率地說,這些文檔在他們存在的地方很糟糕。您發現的任何文檔都可能已過時。 (我真的不受歡迎。) – AdamKG

+0

噢,但是,這是一個判斷的呼籲,我只是要結束這個問題,你不會在沒有引發火焰戰爭的情況下得到實質性的答案,在這一點上,這個問題無論如何將關閉。 – AdamKG

回答

16

Nginx的是一個非常輕,易於使用的解決方案,並與gunicorn沿着它使我們能夠運行任何應用程序WSGI和輕鬆擴展它。 Nginx在處理請求方面更好,因爲它不會像Apache一樣爲每個請求產生一個新進程。

我已經寫了如何爲一個相關的問題部署nginx的Django的答案:

Deploying Django project with Gunicorn and nginx

0

我有nginx的和gunicorn很好的經驗。當我最終設置好所有設置並運行後,它們會繼續工作。

對於nginx的和gunicorn他們是:

* nginx configuration files (/etc/nginx/sites-enabled/ and /etc/nginx/nginx.conf) 
* gunicorn configuration files (/etc/init/gunicorn.conf and /etc/gunicorn.d/) 

我見過的apache + mod_wsgi的教程和它似乎很簡單得多成立。