Làm thế nào và ở đâu tôi có thể bật / tắt nén gzip? [đóng cửa]


8

Trong Drupal 7, tôi có thể bật / tắt nén gzip ở đâu? Có một mô-đun cho chức năng này?


1
Nếu bạn muốn kích hoạt tính năng nén khi bạn lưu / phục vụ các trang được lưu trong bộ nhớ cache, trước tiên bạn nhấp vào Cache pages for anonymous usersvà sau đó lưu các tùy chọn của bạn trên admin/config/development/performancetrang của bạn . Điều này sau đó sẽ đưa ra một Compress cached pages.tùy chọn tiếp tục xuống trong BANDWIDTH OPTIMIZATIONphần (nó được ẩn / hiển thị qua javascript để tất cả có thể hoạt động ngay từ lần nhấp đầu tiên nhưng không có ở đây vì một số lý do).
Jimajamma

nó đã được kiểm tra dưới dạng nén và tôi đang kiểm tra trang web của tôi (xcubicle.com) với: whatsmyip.org/http-compression-test --- nói rằng nó không được nén. không chắc chắn lý do tại sao.
Patoshi パ ト

Nhưng nếu tôi lướt qua, hãy nói xcubicle.com/buy/20467/google-lg-nexus-5-1632gb-unlocked-phones , vì vậy điều này cho thấy trang chủ của bạn không được lưu trong bộ nhớ cache và do đó không phải là bộ nhớ cache bị nén bởi drupal
Jimajamma

Tôi thấy tôi nghĩ thủ phạm có thể là hình thức trên trang đầu khiến nó không lưu vào bộ nhớ cache và bị nén. bất kỳ giải pháp cho điều đó.
Patoshi パ ト

5
Câu hỏi này thực sự rất rõ ràng. Điều này không nên được đóng lại.
Elijah Lynn

Câu trả lời:


10

Cá nhân, tôi không thích cách Drupal xử lý nén đầu ra; Tôi chăm sóc điều này bên ngoài Drupal.

Trên trang web Drupal, tôi thêm

$conf['page_compression'] = FALSE;
$conf['css_gzip_compression'] = FALSE;
$conf['js_gzip_compression'] = FALSE;

đến settings.php và điều này với một mô-đun tùy chỉnh để cho thấy rằng điều này bị vô hiệu hóa:

/**
 * Implements hook_form_FORM_ID_alter().
 */
function MYMODULE_form_system_performance_settings_alter(&$form, $form_state) {
  $form['bandwidth_optimization']['page_compression']['#default_value'] = 0;
  $form['bandwidth_optimization']['page_compression']['#disabled'] = TRUE;
  $form['bandwidth_optimization']['page_compression']['#description'] = t('Handled by Apache.');
}

Điều này cũng là để ngăn chặn việc nén đầu ra kép ngẫu nhiên, có thể rất khó chẩn đoán nếu bạn không biết về các triệu chứng.

Sau đó, trong cấu hình Apache của tôi, tôi làm

<IfModule mod_deflate.c>

  # Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
  <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
      RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
    </IfModule>
  </IfModule>

  # HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
  <IfModule filter_module>
    FilterDeclare   COMPRESS
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/x-icon
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
    FilterChain     COMPRESS
    FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
  </IfModule>

  <IfModule !mod_filter.c>
    # Legacy versions of Apache
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
  </IfModule>

</IfModule>

Điều này cho phép Apache thực hiện nén đầu ra theo loại MIME và cũng đảm bảo tất cả đầu ra dựa trên văn bản được nén. Điều này được điều chỉnh từ phiên bản cũ hơn của tệp .htaccess của dự án HTML5 Boilerplate, hiện đang nằm trong một dự án riêng biệt . Tôi cũng thêm vào các chỉ thị của họ để kiểm soát bộ đệm và một vài thứ khác. Tôi giữ tất cả những thứ này trong một tệp riêng lẻ, sau đó Includetôi sẽ lưu trữ trên máy chủ ảo của mình.

Nhược điểm của việc này là máy chủ nén từng yêu cầu, nhưng nó hoạt động tốt cho các trang web của tôi và khách hàng của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.