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

8

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

Patoshi パ ト シ
quelle
1
Wenn Sie die Komprimierung aktivieren möchten, wenn Sie zwischengespeicherte Seiten speichern / bereitstellen, klicken Sie zuerst auf Cache pages for anonymous usersund speichern Sie dann Ihre Optionen auf Ihrer admin/config/development/performanceSeite. Dies zeigt dann eine Compress cached pages.Option weiter unten im BANDWIDTH OPTIMIZATIONAbschnitt an (sie wird über Javascript ausgeblendet / angezeigt, sodass dies alles beim ersten Klicken funktionieren kann, aber aus irgendeinem Grund hier nicht).
Jimajamma
Es wurde als komprimiert abgehakt und ich teste meine Website (xcubicle.com) mit: whatsmyip.org/http-compression-test --- sagt, es ist nicht komprimiert. nicht sicher warum.
Patoshi
Wenn ich jedoch zu xcubicle.com/buy/20467/google-lg-nexus-5-1632gb-unlocked-phones surfe , ist dies der Fall. Dies deutet darauf hin, dass Ihre Homepage nicht zwischengespeichert wird und daher nicht zwischengespeichert wird von Drupal komprimiert werden
Jimajamma
Ich sehe, ich denke, der Schuldige könnte das Formular auf der Titelseite sein, das dazu führt, dass es nicht zwischengespeichert wird und komprimiert wird. irgendwelche Lösungen dafür.
Patoshi
5
Diese Frage ist eigentlich sehr klar. Dies sollte nicht geschlossen worden sein.
Elijah Lynn

Antworten:

10

Persönlich mag ich nicht, wie Drupal mit der Ausgabekomprimierung umgeht. 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 separaten Projekt befindet . Ich füge auch in ihren Anweisungen für die Cache-Kontrolle und ein paar andere Dinge hinzu. All das behalte ich in einer einzelnen Datei, die ich dann Includein meinen virtuellen Hosts habe.

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

mpdonadio
quelle