2014-04-06 3 views
2

병에서 gzip 압축을 가능하게 할 어떻게 bottle docs 말 :내가 cherrypy

... 그것은 Gzip 압축 가장 상단의 WSGI 서버 병의 실행에 의해 처리 된 병 프로젝트의 추천입니다. cherrypy와 같은 WSGI 서버는이 작업을 수행하는 데 사용할 수있는 GzipFilter 미들웨어를 제공합니다.

app.run(host='...', port=8080, server='cherrypy') 

가 어떻게 gzip 압축을 사용하는 cherrypy을 알 수 있습니다 : 현재

, 나는 내 병 서버를 실행하는거야?


나는이 같은 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) 
+0

bottlepy는 gzip과 같은 몇 가지 옵션을 제외하고는 cherrypy와 동일한 기능을 수행하지 않습니까? 둘 다 사용하는 이유. gzip에 관해서는 - 보내기 전에 gzip으로 자바 스크립트를 사용하고 있습니다. 너 그거 해봤 니? –

+0

@MarcMaxson : 병과 함께 제공된 wsgi 서버가 실제 세계에 적합하지 않은 것으로 표시되어 있기 때문에 (IIRC, 스레드되지 않음) 문서에서 gzipping을 위해 cherrypy를 권장합니다. 자바 스크립트 gzipping에 대해 자세히 설명해 주시겠습니까? 그것은 nodejs를 실행하지 않으므로 서버 측 JavaScript가 없기 때문에 저에게는 의미가 없습니다. – Eric

답변

0

어둠 속에서 자상 (I 익숙하지 않은 때죠 CherryPy) : 여기에 "gzip을 활성화하십시오"라는 주석을 넣으십시오.

cherrypy.config.update({'tools.gzip.on': True}) 

(this에 의해 영감을.)

어떤 행운이?

+0

아니, 행운을 빌어 요. ( – Eric

+0

버머. :(희망하시는 것. –

3

CherryPy에는 Gzip 도구가 있지만 CherryPy 기본 앱에서만 작동합니다. 그것은 can do gzip 또한, 서버 uWSGI를 사용, 더 나은 아직

import cherrypy 
import wsgigzip 


application = wsgigzip.GzipMiddleware(bottle.default_app()) 

cherrypy.config.update({'server.socket_host': "0.0.0.0", 
         'server.socket_port': 8080}) 
cherrypy.tree.graft(application, "/") 
cherrypy.engine.start() 
cherrypy.engine.block() 

또는 : 그래서 당신은 제 3 자 Gzip으로의 WSGI 미들웨어를 사용해야합니다 (wsgigzip 예로 들어에만 사용됩니다, 나는 미들웨어가 가장 잘 작동 아무 생각이 없음) 다른 많은 훌륭한 기능들.

+0

어디에서'host = '...', port = 8080'로 이동합니까? – Eric

+0

@Eric Right, 그러면'config.update – jwalker

+0

서버는 작동하지만 크롬 devtools는 압축을보고하지 않습니다. ( – Eric