Как включить сжатие gzip браузерных файлов на стандартном сервере Hetzner?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Игорь Шмаков
  • Группа: Клиент
  • Сообщений: 42
  • Регистрация: 28.09.2014

17.08.2015 14:56

По данным Google PageSpeed Insights на моем сайте есть js
http://bonvagon.ru/media/js/2b0a5f710788c2647d0599cc0d104ba1.js
, который можно было бы сжать и тем самым не передавать каждому посетителю лишних 666 кб трафика, для этого Google рекомендует "Сжатие ресурсов с помощью функций gzip или deflate позволяет сократить объем данных, передаваемых по сети."

Где и как это можно активировать gzip сжатие, в административной панели Magento или в настройках сервера от Hetzner? Не приведет ли это к каким-либо последствиям?

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

18.08.2015 18:21

Да, хорошее замечание.
Включение сжатия gzip браузерных файлов должно значительно повысить скорость первичной загрузки страниц новыми посетителями.
Новым клиентам стандартных серверов эту инструкцию выполнять не надо, потому что эти настроки теперь будут стандартными.

Шаг 1
Подключитесь к веб-серверу по протоколу SFTP от лица пользователя root и заметите файл /usr/local/nginx/conf/nginx.conf следующим содержимым:
Прикрепленный файл  nginx.conf (1.62К)
Количество загрузок:: 130
user www-data;
worker_processes 4;
error_log logs/error.log error;
events {worker_connections  1024;}
http {
    include mime.types;
    default_type application/octet-stream;
    access_log off;
    sendfile on;
    keepalive_timeout 10;   
    send_timeout 3600;
    proxy_read_timeout 3600;
    fastcgi_read_timeout 3600;
    fastcgi_connect_timeout 3600;
    # Для предотвращения сбоя при оплате через PayPal:
    # «upstream sent too big header while reading response header from upstream»
    # "GET /store/paypal/express/return/?token=<...>&PayerID=<...>
    # http://stackoverflow.com/a/23845727
    fastcgi_buffer_size 32k;
    # Этот параметр тоже нужен, иначе будет сбой:
    # «"fastcgi_busy_buffers_size" must be less than
    # the size of all "fastcgi_buffers" minus one buffer»
    fastcgi_buffers 16 16k;
    # 2015-08-18
    # http://nginx.org/en/docs/http/ngx_http_gzip_module.html
    # http://magento-forum.ru/topic/5187/
    gzip on;
    gzip_disable "msie6";
    gzip_comp_level 6;
    gzip_min_length 1100;
    gzip_buffers 16 8k;
    # 2015-08-18
    # Отключаем сжатие проксируемых ответов:
    # пусть их сжимает сервер, который формирует эти ответы.
    gzip_proxied off;
    # По-умолчанию включено сжатие только ответов типа text/html
    # http://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_types
    # Поэтому добавляем другие типы их перечислением.
    # http://stackoverflow.com/a/12644530
    gzip_types
        text/plain
        text/css
        text/js
        text/xml
        text/javascript
        application/javascript
        application/x-javascript
        application/json
        application/xml
        application/xml+rss;
    client_max_body_size 64m;       
    include sites/*.conf;
}


Шаг 2
Подключитесь к веб-серверу по протоколу SSH от лица пользователя root и перезапустите веб-сервер nginx:
service nginx restart


Шаг 3
Учитывая, что HTML, как и другие браузерные файлы, сжимается веб-сервером Nginx, стоит отключить аналогичную функцию сжатия в PHP zlib.output_compression, чтобы не сжимать 2 раза одно и то же и не расходовать тем самым ресурсы процессора.
Для этого надо открыть (по протоколу SFTP) серверный файл /etc/php5/fpm/php.ini, посмотреть, присутствует ли там строка zlib.output_compression, и удалить эту строку, если она присутствует.
После успшеного редактирования php.ini надо перезапустить PHP (по протоколу SSH с правами root, аналогично Nginx):
service php5-fpm restart


#3 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

18.08.2015 19:00

Ваш сервер уже обновил.

Поделиться темой: