Как включить gzip сжатие на сервере Nginx
Достаточно полезная вещь, как сжатие страницы перед отправкой ее в браузер, по-умолчанию отключено на серверах. Но мы-то с вами продвинутые пользователи, мы хотим сделать свои сайты быстрее и лучше.
Еще раз повторюсь, что речь пойдет о включении сжатия именно на сервере Nginx, а не Apache. Для того, чтобы включить сжатие на Apache, у него есть модуль mod_deflate. Это уже отдельная статья.
Итак, вернемся к теме. Некоторое время назад я наткнулся на эту инструкцию в комментариях на форуме хостинга Руцентра. К сожалению, не могу сейчас найти ссылку на тот топик.
Поэтому я буду рассказывать именно про то, как включить сжатие на хостинге nic.ru. Но это применимо и ко всем Nginx в целом, так что, если у вас другой хостинг, вы смело можете опустить пару пунктов из нижеприведенной инструкции и сделать то же самое у себя.
Инструкция по включению gzip-сжатия
Первые 2 пункта инструкции касаются только хостинга Руцентра.
- 1. Переводим САЙТ в режим РУЧНОЙ работы.
- 2. Изменяем файл ~/etc/nginx/имя_сайта.site.conf
- 2.1. Между строками server { и listen ... вставляем следующий код:
gzip on; gzip_buffers 16 8k; gzip_comp_level 2; gzip_min_length 1024; gzip_types text/css text/plain text/json text/x-js text/javascript text/xml application/json application/x-javascript application/xml application/xml+rss application/javascript; gzip_disable "msie6"; gzip_vary on; gzip_http_version 1.0;
- 3. Перезапускаем веб сервер.
Как видите, все очень просто. Если же вам нужно включить сжатие на всем хостинге, а не на конкретном сайте, то вам нужно перевести не сам сайт в ручной режим, а весь ваш сервер. И изменения нужно будет вносить в файл ~/etc/nginx/httpd.conf.
После включения сжатия у вас перед подачей в браузер будет сжиматься текст, js-скрипты и css-файлы. Если вы хотите, чтобы происходило сжатие других типов файлов, просто добавьте их MIME-типы через пробел в строчке gzip_types.