Ho un server Jetty che non ha la compressione abilitata (l'ho testato qui ). Come posso abilitare la compressione?
Ho un server Jetty che non ha la compressione abilitata (l'ho testato qui ). Come posso abilitare la compressione?
Risposte:
Devi abilitare il GzipFilter
per fare in modo che Jetty restituisca contenuti compressi. Dai un'occhiata qui su come farlo: http://blog.max.berger.name/2010/01/jetty-7-gzip-filter.html
Puoi anche usare il gzip
parametro init per fare in modo che Jetty cerchi contenuti compressi. Ciò significa che se il file file.txt
viene richiesto, Jetty cercherà un file denominato file.txt.gz
e lo restituirà.
In Jetty 8 (?) E versioni successive, dovrai usare un GzipHandler
come GzipFilter
sembra essere deprecato / mancante:
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="handler">
<New class="org.eclipse.jetty.server.handler.GzipHandler"/>
<!-- package name might have changed in Jetty 9; possibly org.eclipse.jetty.server.handler.gzip.GzipHandler
as per /programming/35725538/jetty-gziphandler-configuration -->
</Set>
</Configure>
Il gzip
parametro init funziona ancora, nel caso in cui si desideri servire solo contenuto statico (che in effetti sarebbe più efficiente che passare attraverso il gestore GZip). Tuttavia, è consigliabile conservare anche le copie non compresse sul server, poiché potrebbe essere necessario che Jetty serva contenuti non compressi per browser incompatibili (principalmente IE) .
WEB-INF/jetty-env.xml
della webapp (ci sono anche altre opzioni, jetty-web.xml
, web-jetty.xml
, classes/org/eclipse/jetty/webapp/webdefault.xml
, ...)