it-swarm.com.de

Wie und wo kann ich die gzip-Komprimierung aktivieren / deaktivieren?

In Drupal 7 wo kann ich die gzip-Komprimierung aktivieren/deaktivieren? Gibt es ein Modul für diese Funktionalität?

8

Persönlich gefällt mir die Art und Weise nicht, wie Drupal die Ausgabekomprimierung handhabt; ich kümmere mich außerhalb von Drupal darum.

Auf der Drupal Seite, füge ich hinzu

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

zu settings.php und dies zu einem benutzerdefinierten Modul, um zu zeigen, dass dies deaktiviert ist:

/**
 * 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.');
}

Dies dient auch dazu, eine versehentliche Komprimierung der doppelten Ausgabe zu verhindern, die sehr schwer zu diagnostizieren sein kann, wenn Sie die Symptome nicht kennen.

Dann mache ich es in meiner Apache-Konfiguration

<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>

Auf diese Weise kann Apache die Ausgabekomprimierung nach MIME-Typ durchführen und sicherstellen, dass alle textbasierten Ausgaben komprimiert werden. Dies wurde aus einer älteren Version der .htaccess-Datei des HTML5-Boilerplate-Projekts übernommen, die sich jetzt in einem separates Projekt befindet. Ich füge auch in ihren Anweisungen für die Cache-Kontrolle und ein paar andere Dinge hinzu. Ich behalte all dies in einer einzelnen Datei, die ich dann Include in meinen virtuellen Hosts.

Der Nachteil dabei ist, dass der Server jede Anforderung komprimiert, aber für meine Websites und meine Clients gut funktioniert.

10
mpdonadio