Статті / Внутренняя оптимизация сайта /

Як прискорити завантаження сторінок сайту за допомогою стиснення

     Як збільшити швидкість завантаження сторінок за допомогою стиснення

Стиснення є частиною специфікації HTTP/1.1 (RFC 2616). Мета стиснення очевидна - скоротити обсяг трафіку, що передається по мережі від веб-сервера до браузера і, як наслідок, зменшити час завантаження сторінок. Алгоритми стиснення дозволяють зменшити обсяг сторінок більш ніж 3 разу.

                                                            Як це працює?

До запиту браузер додає заголовок AcceptEncoding, інформуючи веб-сервер про бажання отримати сторінку в стислому вигляді. Значення заголовка AcceptEncoding – методи стиснення, які підтримуються браузером (gzip та deflate у прикладі нижче).

Отримавши запит, веб-сервер знаходить сторінку на диску, стискає її і надсилає відповідь (на схемі нижче розмір відповіді - 22кб замість вихідних 80кб). У свою чергу, браузер виконує зворотне перетворення - розіжме сторінку і покаже її користувачеві.

                                            Що саме потрібно стискати

Стискати має сенс лише текст: HTML, CSS, JavaScript, XML, txt та інше. Ефективність стиснення може досягати 72%. Що стосується стиснення зображень/відео/аудіо та інших бінарних файлів, воно не дасть нічого, крім навантаження на процесор сервера.

                          Налаштування стиснення на веб-сервері Apache2

Стиснення в Apache2 забезпечується модулем mod_deflate, тому слід переконатися, що модуль завантажений:

Якщо виведення команди порожнє, потрібно завантажити модуль.

Debian 8:

a2enmod deflate

apachectl ­k restart

CentOS 7:

У файлі  /etc/httpd/conf.modules.d/00­base.conf раскомментируйте строку:

LoadModule deflate_module modules/mod_deflate.so

Перезапустить сервіс:

systemctl restart httpd.service

Щоб вебсервер стискав  HTML, CSS, JavaScript, XML, txt треба додати в конфігураційний файл  apache2.conf / .htaccess рядок:

AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascripttext/xml text/plain

Антон Сыровацкий
Системный администратор дата центра ЮНИТ-ИС