ฉันมีเซิร์ฟเวอร์ Jetty ที่ไม่ได้เปิดใช้งานการบีบอัด (ฉันทดสอบที่นี่ ) ฉันจะเปิดใช้งานการบีบอัดได้อย่างไร
ฉันมีเซิร์ฟเวอร์ Jetty ที่ไม่ได้เปิดใช้งานการบีบอัด (ฉันทดสอบที่นี่ ) ฉันจะเปิดใช้งานการบีบอัดได้อย่างไร
คำตอบ:
คุณต้องเปิดใช้งานGzipFilter
เพื่อให้ Jetty ส่งคืนเนื้อหาที่ถูกบีบอัด ดูที่นี่เกี่ยวกับวิธีการทำเช่นนั้น: http://blog.max.berger.name/2010/01/jetty-7-gzip-filter.html
คุณยังสามารถใช้gzip
พารามิเตอร์ init เพื่อทำการค้นหา Jetty สำหรับเนื้อหาที่ถูกบีบอัด นั่นหมายความว่าหากfile.txt
มีการร้องขอไฟล์Jetty จะคอยดูไฟล์ที่มีชื่อfile.txt.gz
และส่งคืนนั้น
ใน Jetty 8 (?) และใหม่กว่าคุณจะต้องใช้ a GzipHandler
ตามที่GzipFilter
ดูเหมือนว่าจะเลิกใช้ / หายไป:
<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
พารามิเตอร์ init ยังคงทำงานในกรณีที่คุณต้องการเพียงให้บริการเนื้อหาแบบคงที่ (ซึ่งในความเป็นจริงจะมีประสิทธิภาพมากขึ้นกว่าที่จะผ่านการจัดการ GZip) แต่ก็จะแนะนำให้เก็บสำเนาการบีบอัดบนเซิร์ฟเวอร์เช่นกันท่าเทียบเรืออาจจำเป็นที่จะให้บริการเนื้อหาที่ไม่มีการบีบอัดสำหรับเบราว์เซอร์ที่ไม่เข้ากัน (ส่วนใหญ่ IE)
WEB-INF/jetty-env.xml
ของ webapp (มีตัวเลือกอื่น ๆ ได้เป็นอย่างดีjetty-web.xml
, web-jetty.xml
, classes/org/eclipse/jetty/webapp/webdefault.xml
, ... )