Как включить gzip в Apache


Включить gzip Apache при передаче данных пользователю можно активировав модуль deflate. В версиях Apache более ранних, чем 1.4 модуль назывался также как технология компрессии — gzip.



Посмотреть включен ли модуль можно выполнив

apache2ctl -M | grep deflate


или


ls /etc/apache2/mods-enabled | grep deflate



Если модуль не активирован его нужно активировать:

a2enmod deflate



После этого перезапускаем веб-сервер:

systemctl restart apache2



Настройки для deflate gzip Apache в .htaccess


Также в файле .htaccess в корне сайта должны быть правила для модуля. Правилами задаются типы данных, для которых будет выполняться сжатие при передаче. Обычно это html, css, js, тестовый формат.


Пример приведен ниже:

AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript



Проверить работает ли сжатие можно используя консольную утилиту curl с ключом, позволяющим просматривать заголовки



curl -I -H 'Accept-Encoding: gzip,deflate'  https://example.com

HTTP/1.1 200 OK
Date: Fri, 11 Aug 2017 12:35:15 GMT
Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/5.3.29
Link: <https://example.com/wp-json/>; rel=»https://api.w.org/», <https://example.com/>; rel=shortlink
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 20
Content-Type: text/html; charset=UTF-8



Content-Encoding: gzip в выводе говорит о том, что gzip включен и компрессия производится.



Пример ответа сервера с заголовком приведен на скриншоте:

gzip Apache


Также можно использовать внешние сервисы.



Все, что делают сервисы — выводят на экран результат выполнения того же запроса при помощи curl с заголовками, но в отформатированном и более наглядном виде.


Если на фронтэнде — на порту 80 и 443 на публичном адресе сервера используется Nginx сжатие нужно включать на стороне Nginx

Сказать спасибо