【发布时间】:2014-05-18 12:19:47
【问题描述】:
bottle docs 说:
... Bottle 项目建议 Gzip 压缩最好由运行在其之上的 WSGI 服务器来处理。诸如cherrypy之类的WSGI服务器提供了一个
GzipFilter中间件,可以用来完成这个。
目前,我正在运行我的瓶子服务器:
app.run(host='...', port=8080, server='cherrypy')
如何告诉cherrypy 使用gzip 压缩?
我可以像这样获取cherrypy服务器对象,但我仍然不知道如何启用gzip:
class CherryPyGzip(ServerAdapter):
def run(self, handler):
from cherrypy import wsgiserver
server = wsgiserver.CherryPyWSGIServer((self.host, self.port), handler)
# enable gzip here somehow?
try:
server.start()
finally:
server.stop()
app.run(host='...', port=8080, server=CherryPyGzip)
【问题讨论】:
-
除了更少的选项,比如 gzip 之外,瓶子的作用与cherrypy 不同吗?为什么要同时使用。至于 gzip - 我在发送之前使用 javascript 对其进行 gzip。你试过吗?
-
@MarcMaxson:我同时使用这两种方法是因为随瓶子一起提供的 wsgi 服务器被标记为不太适合现实世界(IIRC,它不是线程化的),并且文档建议使用 cherrypy 进行 gzip 压缩。你能详细说明一下 JavaScript gzipping 的事情吗?这对我来说没有任何意义,因为我没有运行 nodejs,因此没有服务器端 JavaScript。
标签: python gzip wsgi cherrypy bottle