Trên Windows, tôi gặp phải hành vi này trong khi cố gắng tạm thời bật nén nội dung trong môi trường phát triển của mình để hiểu rõ tổng trọng tải của một trang trong ứng dụng của tôi.
Tôi có thể xác nhận rằng ESET NOD32 Antivirus hoạt động theo cách mà @bugs_ mô tả trong câu trả lời cho câu hỏi này và tôi cũng có thể xác nhận rằng Fiddler4 đang chạy có cùng tác dụng. Tuy nhiên, cả hai đều đóng Fiddler và vô hiệu hóa chức năng quét HTTP NOD32 đã không giải quyết vấn đề, để làm điều đó, tôi đã phải vô hiệu hóa việc sử dụng các 'sendfile' trong kết nối của tôi như sau:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
compression="on" compressionMinSize="8192" useSendfile="false"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
redirectPort="8443" />
Thuộc tính quan trọng, ở đây, là useSendfile="false"
Tôi đang sử dụng Apache Tomcat 8, trong Windows.Tài liệu Tomcat (http://tomcat.apache.org/tomcat-8.0-doc/config/http.html) nói sau đây về useSendfile
:
Sử dụng thuộc tính này để bật hoặc tắt khả năng gửi tệp. Giá trị mặc định là true. Lưu ý rằng việc sử dụng sendfile sẽ vô hiệu hóa bất kỳ nén nào mà Tomcat có thể đã thực hiện trên phản hồi.
Và đây về compression
:
Có một sự cân bằng giữa việc sử dụng nén (tiết kiệm băng thông của bạn) và sử dụng các tính năng sendfile (tiết kiệm chu kỳ CPU của bạn). Nếu trình kết nối hỗ trợ tính năng gửi tệp, ví dụ: kết nối NIO, sử dụng sendfile sẽ được ưu tiên hơn nén. Các triệu chứng sẽ là các tệp tĩnh lớn hơn mà 48 Kb sẽ được gửi không nén. Bạn có thể tắt sendfile bằng cách thiết lập thuộc tính useSendfile của connector, như được ghi dưới đây, hoặc thay đổi ngưỡng sử dụng sendfile trong cấu hình của DefaultServlet trong conf/web.xml mặc định hoặc trong web.xml của ứng dụng web của bạn.
chưa bao giờ thấy biểu mẫu như vậy, sẽ rất thú vị nếu một số giải pháp xuất hiện. Chỉ dành cho bạn thông tin - trong dự án của chúng tôi, chúng tôi sử dụng cách sau http://blog.max.berger.name/2010/01/jetty-7-gzip-filter.html – Dewfy
Trường hợp Tomcat của bạn được Apache đặt trước trên cổng 80 hoặc là Tomcat truy cập trực tiếp trên cổng 8080? –
hi david..u là đúng .. nó là fronted bởi apache trên cổng 80 và đó là lý do tôi nhận được các tập tin không nén ... khi tôi truy cập tomcat của tôi trên cổng 8080, tôi nhận được các tập tin nén .... cảm ơn cho trỏ tôi đi đúng hướng .. –