¿Cómo y dónde podría habilitar / deshabilitar la compresión gzip? [cerrado]

8

En Drupal 7, ¿dónde podría habilitar / deshabilitar la compresión gzip? ¿Hay un módulo para esta funcionalidad?

Patoshi パ ト シ
fuente
1
Si desea habilitar la compresión al guardar / servir páginas en caché, primero haga clic en Cache pages for anonymous usersy luego guarde sus opciones en su admin/config/development/performancepágina. Esto presentará una Compress cached pages.opción más abajo en la BANDWIDTH OPTIMIZATIONsección (se oculta / muestra a través de JavaScript, por lo que todo podría funcionar con el primer clic, pero no lo hace aquí por alguna razón).
Jimajamma
ha sido marcado como comprimido y estoy probando mi sitio (xcubicle.com) con: whatsmyip.org/http-compression-test --- dice que no está comprimido. No estoy seguro de por qué.
Patoshi パ ト シ
Pero si navego hasta, digamos xcubicle.com/buy/20467/google-lg-nexus-5-1632gb-unlocked-phones lo es, así que esto sugiere que su página de inicio no se está almacenando en caché y, por lo tanto, no siendo comprimido por drupal
Jimajamma
veo que creo que el culpable podría ser el formulario en la página principal que hace que no se almacene en caché y se comprima. alguna solución a eso.
Patoshi パ ト シ
55
Esta pregunta es realmente muy clara. Esto no debería haber sido cerrado.
Elijah Lynn el

Respuestas:

11

Personalmente, no me gusta la forma en que Drupal maneja la compresión de salida; Me encargo de esto fuera de Drupal.

En el sitio de Drupal, agrego

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

a settings.php, y esto a un módulo personalizado para mostrar que esto está deshabilitado:

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

Esto también es para evitar la compresión accidental de doble salida, que puede ser muy difícil de diagnosticar si no conoce los síntomas.

Luego, en mi configuración de Apache, hago

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

Esto le permite a Apache realizar la compresión de salida por tipo MIME y también asegurarse de que toda la salida basada en texto se comprima. Esto está adaptado de una versión anterior del archivo .htaccess del proyecto HTML5 Boilerplate, que ahora vive en un proyecto separado . También agrego sus directivas para el control de caché y algunas otras cosas. Guardo todo esto en un archivo individual, que luego guardo Includeen mis hosts virtuales.

La desventaja de esto es que el servidor comprime cada solicitud, pero funciona bien para mis sitios y mis clientes.

mpdonadio
fuente