2017-03-09 75 views
2

我讀過here,說明Unicorn/Gunicorn HTTP服務器「不擅長服務靜態文件」,而且Nginx更適合靜態內容。有人可以解釋爲什麼這是嗎?爲什麼Unicorn/Gunicorn的靜態內容緩慢?

我理解Nginx和Gunicorn的專業角色,並且Nginx是一個反向代理,並且如果需要,Gunicorn實際上可以提供靜態文件。

+0

我一直在閱讀獨角獸設計規範文檔[這裏](https://bogomips.org/unicorn/)和[這裏](https://bogomips.org/unicorn/DESIGN.html)。與Nginx相比,Gunicorn可能僅僅是「未優化」嗎?例如。它不使用'sendfile()',它允許直接服務器 - >客戶端傳輸器? – geonaut

回答

2

主要是因爲獨角獸並不是用來解決涉及檔案給客戶端的問題套件:

獨角獸是快速的客戶和Unix服務器。什麼是快速客戶端? 快速客戶端是另一種應用程序或服務器,可以快速與Rack服務器連接,而不會出現太多延遲。獨角獸不如 獨立服務器:它不是用來處理網絡連接上發生的 的緩慢請求。它依靠Nginx或Apache處理網頁請求的緩衝和排隊,因此它不必 擔心併發和事件驅動的編程。 Unicorn基本上是 ,nginx和rack之間的粘連,其中Nginx是快速的 客戶端。

Source

考慮,你必須在56K調制解調器嘗試觀看視頻400MB 100名旅客的情況。你真的不想讓你的應用程序在內存中保存100個實例,或者將文件加載到內存中等。Nginx的設計考慮了這種情況。

+0

好的,謝謝@coreyward,所以如果我理解正確,好的服務文件是一個需要能夠適應不同連接速度和潛在的中斷連接等功能。獨角獸與快速客戶端(即本地主機)工作,與遲延的遠程連接很好地發揮。我認爲當我說Unicorn對服務文件「沒有優化」時,我覺得自己有點正確。 – geonaut