Mam serwer Jetty, który nie ma włączonej kompresji ( przetestowałem to tutaj ). Jak mogę włączyć kompresję?
Mam serwer Jetty, który nie ma włączonej kompresji ( przetestowałem to tutaj ). Jak mogę włączyć kompresję?
Odpowiedzi:
Musisz włączyć, GzipFilter
aby Jetty zwrócił skompresowaną zawartość. Zobacz, jak to zrobić: http://blog.max.berger.name/2010/01/jetty-7-gzip-filter.html
Możesz także użyć gzip
parametru init, aby Jetty szukało skompresowanej treści. Oznacza to, że jeśli plik file.txt
zostanie zażądany, Jetty będzie szukał pliku o nazwie file.txt.gz
i zwróci go.
W Jetty 8 (?) I nowszych będziesz musiał użyć a, GzipHandler
który GzipFilter
wydaje się być przestarzały / brakuje:
<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>
gzip
Parametrów startowych nadal działa, w przypadku, gdy chcesz tylko służyć zawartości statycznej (która w rzeczywistości byłby bardziej efektywny niż przeżywa obsługi gzip). Wskazane jest jednak zachowanie nieskompresowanych kopii również na serwerze, ponieważ Jetty może wymagać podania nieskompresowanej zawartości dla niekompatybilnych przeglądarek (głównie IE) .
WEB-INF/jetty-env.xml
tego webapp (istnieją inne opcje, jak również, jetty-web.xml
, web-jetty.xml
, classes/org/eclipse/jetty/webapp/webdefault.xml
, ...)