Как и где я смогу включить / отключить сжатие gzip? [закрыто]

8

В Drupal 7 где я смогу включить / отключить сжатие gzip? Есть ли модуль для этой функциональности?

Патоши パ ト シ
источник
1
Если вы хотите включить сжатие при сохранении / обслуживании кэшированных страниц, сначала нажмите Cache pages for anonymous usersи сохраните параметры на своей admin/config/development/performanceстранице. Затем будет представлена Compress cached pages.опция ниже в BANDWIDTH OPTIMIZATIONразделе (она скрыта / показана с помощью javascript, поэтому все это может сработать при первом нажатии, но по какой-то причине здесь не работает).
Jimajamma
он был отмечен как сжатый, и я тестирую мой сайт (xcubicle.com) с помощью: whatsmyip.org/http-compression-test --- говорит, что он не сжат. не уверен почему.
Патоши シ ト シ
Но если я зайду , скажем, xcubicle.com/buy/20467/google-lg-nexus-5-1632gb-unlocked-phones, то это так, так что это предполагает, что ваша домашняя страница не кэшируется и, следовательно, не сжатие drupal
Jimajamma
я вижу, я думаю, что виновником может быть форма на первой странице, которая заставляет его не кэшироваться и не получить gzipped. любые решения для этого.
Патоши シ ト シ
5
Этот вопрос на самом деле очень ясен. Это не должно было быть закрыто.
Элайджа Линн

Ответы:

11

Лично мне не нравится, как Drupal обрабатывает сжатие вывода; Я забочусь об этом за пределами Drupal.

На сайте Drupal, я добавляю

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

в settings.php, и это в пользовательский модуль, чтобы показать, что это отключено:

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

Это также предотвращает случайное двойное сжатие выходного сигнала, которое может быть очень трудно диагностировать, если вы не знаете о симптомах.

Затем в моем конфиге Apache я делаю

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

Это позволяет Apache выполнять сжатие вывода по типу MIME, а также обеспечивает сжатие всего вывода на основе текста. Это адаптировано из более старой версии файла .htaccess проекта HTML5 Boilerplate, который теперь находится в отдельном проекте . Я также добавляю в их директивы для управления кешем и еще несколько вещей. Я храню все это в отдельном файле, который я затем храню Includeв своих виртуальных хостах.

Недостатком этого является то, что сервер сжимает каждый запрос, но он хорошо работает для моих сайтов и моих клиентов.

mpdonadio
источник