Включить 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 включен и компрессия производится.
Пример ответа сервера с заголовком приведен на скриншоте:
Также можно использовать внешние сервисы.
Все, что делают сервисы — выводят на экран результат выполнения того же запроса при помощи curl с заголовками, но в отформатированном и более наглядном виде.
Если на фронтэнде — на порту 80 и 443 на публичном адресе сервера используется Nginx сжатие нужно включать на стороне Nginx