2012-05-24 70 views
3

這是一個開始的問題,但我很難理解Gunicorn和Nginx之間的抽象。我不是在尋找一個詳細的答案,只是在高層次上,每個角色扮演什麼角色?他們如何互動?Gunicorn和Nginx之間的區別

回答

2

根據Gunicorn's deploy doc,我的理解是您使用Nginx作爲Gunicorn的代理服務器。

由於Gunicorn從Ruby's Unicorn移植,我假設的限制和獨角獸的規範適用於Gunicorn還有:

獨角獸是設計成只能擔任低 快速客戶端應用程序機架HTTP服務器高帶寬連接,並且在類Unix/Unix內核中具有優勢。緩慢的客戶端應該只能通過放置一個能夠完全緩衝 請求和響應在Unicorn和慢速客戶端之間的逆向代理服務器。

Gunicorn's deploy doc說同樣的事情:

雖然有許多可用的HTTP代理,我們強烈建議您使用Nginx的 。如果您選擇另一臺代理服務器,則需要 確保它在使用默認Gunicorn 工作人員時緩存較慢的客戶端。如果沒有這種緩衝,Gunicorn將很容易被拒絕服務攻擊(012-OXY)攻擊。

因此,Gunicorn服務於快速,低延遲的高帶寬客戶端,其餘服務則由Nginx服務。