Como e onde eu poderia ativar / desativar a compactação gzip? [fechadas]

8

No Drupal 7, onde eu seria capaz de ativar / desativar a compactação gzip? Existe um módulo para essa funcionalidade?

Patoshi パ ト シ
fonte
11
Se você deseja ativar a compactação ao salvar / exibir páginas em cache, primeiro clique Cache pages for anonymous userse salve suas opções na sua admin/config/development/performancepágina. Isso apresentará uma Compress cached pages.opção mais abaixo na BANDWIDTH OPTIMIZATIONseção (ela é oculta / exibida via javascript, portanto, tudo pode funcionar no primeiro clique, mas não está aqui por algum motivo).
precisa saber é o seguinte
foi marcado como compactado e estou testando meu site (xcubicle.com) com: whatsmyip.org/http-compression-test --- diz que não está compactado. não sei por que.
Patoshiパトシ
Mas se eu navegar para, digamos xcubicle.com/buy/20467/google-lg-nexus-5-1632gb-unlocked-phones , então isso sugere que sua página inicial não está sendo armazenada em cache e, portanto, não é sendo comprimido por drupal
Jimajamma
Vejo que acho que o culpado pode ser o formulário na primeira página que está causando o não cache e o gzip. quaisquer soluções para isso.
Patoshiパトシ
5
Esta questão é realmente muito clara. Isso não deveria ter sido fechado.
Elias Lynn

Respostas:

11

Pessoalmente, não gosto da maneira como o Drupal lida com a compactação de saída; Eu cuido disso fora do Drupal.

No site Drupal, eu adiciono

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

para settings.php e isso para um módulo personalizado para mostrar que está desabilitado:

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

Isso também evita a compactação acidental de saída dupla, que pode ser muito difícil de diagnosticar se você não souber sobre os sintomas.

Então, na minha configuração do Apache, eu faço

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

Isso permite que o Apache faça a compactação de saída por tipo MIME e também verifique se toda a saída baseada em texto é compactada. Isso é adaptado de uma versão mais antiga do arquivo .htaccess do projeto HTML5 Boilerplate, que agora vive em um projeto separado . Também adiciono suas diretivas para controle de cache e algumas outras coisas. Eu mantenho tudo isso em um arquivo individual, que eu guardo Includeem meus hosts virtuais.

A desvantagem disso é que o servidor compacta cada solicitação, mas funciona bem para meus sites e meus clientes.

mpdonadio
fonte