Comment et où pourrais-je activer / désactiver la compression gzip? [fermé]

8

Dans Drupal 7, où pourrais-je activer / désactiver la compression gzip? Existe-t-il un module pour cette fonctionnalité?

Patoshi パ ト シ
la source
1
Si vous souhaitez activer la compression lorsque vous enregistrez / servez des pages en cache, vous cliquez d'abord sur Cache pages for anonymous userspuis enregistrez vos options sur votre admin/config/development/performancepage. Cela présentera ensuite une Compress cached pages.option plus bas dans la BANDWIDTH OPTIMIZATIONsection (elle est masquée / affichée via javascript, donc cela pourrait fonctionner au premier clic, mais pas ici pour une raison quelconque).
Jimajamma
il a été coché comme compressé et je teste mon site (xcubicle.com) avec: whatsmyip.org/http-compression-test --- dit que ce n'est pas compressé. pas certain de pourquoi.
Patoshi パ ト シ
Mais si je surfe sur, par exemple, xcubicle.com/buy/20467/google-lg-nexus-5-1632gb-unlocked-phones, cela signifie que votre page d'accueil n'est pas mise en cache et n'est donc pas être compressé par drupal
Jimajamma
Je vois que je pense que le coupable pourrait être le formulaire sur la première page qui l'empêche de se mettre en cache et d'être compressé. toutes les solutions à cela.
Patoshi パ ト シ
5
Cette question est en fait très claire. Cela n'aurait pas dû être fermé.
Elijah Lynn

Réponses:

11

Personnellement, je n'aime pas la façon dont Drupal gère la compression de sortie; Je m'occupe de ça en dehors de Drupal.

Sur le site Drupal, j'ajoute

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

dans settings.php, et ceci dans un module personnalisé pour montrer que ceci est désactivé:

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

Cela permet également d'éviter une double compression de sortie accidentelle, qui peut être très difficile à diagnostiquer si vous ne connaissez pas les symptômes.

Ensuite, dans ma configuration Apache, je fais

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

Cela permet à Apache d'effectuer la compression de sortie par type MIME et de s'assurer que toutes les sorties basées sur du texte sont compressées. Ceci est adapté d'une ancienne version du fichier .htaccess du projet HTML5 Boilerplate, qui vit maintenant dans un projet distinct . J'ajoute également leurs directives pour le contrôle du cache, et quelques autres choses. Je garde tout cela dans un fichier individuel, que je puis Includedans mes hôtes virtuels.

L'inconvénient est que le serveur compresse chaque requête, mais cela fonctionne bien pour mes sites et mes clients.

mpdonadio
la source