簡體   English   中英

如何在Heroku Cedar上啟用gzip壓縮(Python / Flask / Gunicorn)

[英]How to enable gzip compression on Heroku Cedar (Python/Flask/Gunicorn)

如何在新的Heroku Cedar堆棧上啟用GZIP壓縮? 這是他們的網站直接

由於對Cedar應用程序的請求直接發送到應用程序服務器 - 不通過像nginx這樣的HTTP服務器代理 - 因此必須在應用程序中完成任何響應壓縮。 對於Rack應用程序,可以使用Rack :: Deflater中間件來完成。 對於gzip壓縮靜態資源,請確保在中間件堆棧中的ActionDispatch :: Static之前加載Rack :: Deflater。

如果我正確讀取這個,我的Python應用程序代碼現在負責gzipping響應? 我將如何壓縮我的靜態資產(例如css / js)? 我正在使用Flask和GUnicorn。

根據2003年發布的WSGI規范 ,應用程序不應該gzip響應,而是將其留給服務器(假設是Apache,運行應用程序CGI-stylee)。

應用程序和中間件不得對其輸出應用任何類型的Transfer-Encoding,例如分塊或gzipping; 作為“逐跳”操作,這些編碼是實際Web服務器/網關的范圍。

但是今天在2013年,應用程序通常服務器。 WSGI沒有預料到這一點。 根據http://www.b-list.org/weblog/2009/aug/10/wsgi/ ,這是一個問題

WSGI對與CGI兼容性的強烈堅持也意味着,在2009年,Python Web開發世界仍未能顯着改進1997年的應用程序編程模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM