Come e dove sarei in grado di abilitare / disabilitare la compressione gzip? [chiuso]


8

In Drupal 7 dove sarei in grado di abilitare / disabilitare la compressione gzip? Esiste un modulo per questa funzionalità?


1
Se vuoi abilitare la compressione quando salvi / servi pagine memorizzate nella cache, fai prima clic su Cache pages for anonymous userse quindi salvi le opzioni sulla tua admin/config/development/performancepagina. Questo presenterà quindi Compress cached pages.un'opzione più in basso nella BANDWIDTH OPTIMIZATIONsezione (è nascosta / mostrata tramite javascript, quindi potrebbe funzionare tutto al primo clic, ma per qualche motivo non funziona qui).
Jimajamma,

è stato spuntato come compresso e sto testando il mio sito (xcubicle.com) con: whatsmyip.org/http-compression-test --- dice che non è compresso. non so perché.
Patoshi パ ト シ

Ma se navigo su, dì xcubicle.com/buy/20467/google-lg-nexus-5-1632gb-unlocked-phones , quindi questo suggerisce che la tua home page non viene memorizzata nella cache e quindi non lo è essere compresso da Drupal
Jimajamma,

vedo che penso che il colpevole potrebbe essere il modulo in prima pagina che lo sta causando per non memorizzare nella cache e ottenere compresso. qualsiasi soluzione a questo.
Patoshi パ ト シ

5
Questa domanda è in realtà molto chiara. Questo non avrebbe dovuto essere chiuso.
Elijah Lynn il

Risposte:


11

Personalmente, non mi piace il modo in cui Drupal gestisce la compressione dell'output; Mi occupo di questo al di fuori di Drupal.

Sul sito Drupal, aggiungo

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

su settings.php e questo su un modulo personalizzato per mostrare che è disabilitato:

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

Questo serve anche a prevenire la compressione accidentale della doppia uscita, che può essere molto difficile da diagnosticare se non si conoscono i sintomi.

Quindi, nella mia configurazione di Apache, lo faccio

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

Ciò consente ad Apache di eseguire la compressione dell'output in base al tipo MIME e di assicurarsi che tutto l'output basato su testo venga compresso. Questo è adattato da una versione precedente del file .htaccess del progetto HTML5 Boilerplate, che ora vive in un progetto separato . Aggiungo anche le loro direttive per il controllo della cache e alcune altre cose. Tengo tutto questo in un singolo file, che poi Includenei miei host virtuali.

L'aspetto negativo di questo è che il server comprime ogni richiesta, ma funziona bene per i miei siti e i miei clienti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.