繁体   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