Nginx и Apache — это веб-сервера, которые зарекомендовали себя, как надежное решение даже для больших проектов.

Производительность сайта отчасти зависит от размера файлов, которые должен загрузить браузер посетителя. Уменьшив размер передаваемых файлов, вы можете сделать ваш сайт быстрее. Кроме того, это может удешевить ваш сайт для тех посетителей, которые платят за использование полосы пропускания по лимитным соединениям. Один из самых эффективных методов ускорить ответ от вашего веб-сервера nginx — это включить GZIP сжатие.

Gzip – это популярная программа для сжатия данных. Вы можете настроить веб-сервер Nginx для сжатия загружаемых файлов через gzip. Затем эти файлы распакуют браузеры – и сайт работает без каких-либо потерь, но имеет существенное преимущество: между веб-сервером и браузером передается меньший объем данных. Еще одна хорошая новость: сжатие широко поддерживается всеми основными браузерами, и не использовать ее нет причин.

Из-за особенностей работы сжатия в целом и gzip в частности, некоторые файлы сжимаются лучше, чем другие. Например, текстовые файлы сжимаются очень хорошо (часто их можно сделать в два раза меньше). А изображения – файлы JPEG или PNG – уже сжаты по своей природе, и повторное сжатие с помощью gzip не дает практически никаких результатов. Конечно, операция сжатия файлов использует ресурсы сервера, поэтому лучше сжимать только те файлы, размер которых существенно уменьшится.

В этом мануале вы узнаете, как настроить Nginx для поддержки сжатия gzip. Это уменьшит размер контента, отправляемого посетителям вашего сайта, и повысит его производительность

Настройка gzip в Nginx

Чтобы изменить стандартную конфигурацию gzip в Nginx, откройте главный конфигурационный файл Nginx в nano или в другом текстовом редакторе:

sudo nano /etc/nginx/nginx.conf

Найдите раздел настроек gzip, который выглядит так:

http {
. . .
##
# `gzip` Settings
#
#
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
. . .
}

Как видите, сжатие gzip действительно включено (директива gzip on), но некоторые дополнительные параметры закомментированы знаком # и не используются. Давайте внесем в этот раздел несколько изменений:
Чтобы расскомментировать настройки, необходимо удалить # в начале строки.
Параметры gzip nginx:
gzip_min_length 256 устанавливает минимальную длину ответов, для которых будет применяться сжатие. Сжимать очень маленькие файлы практически не имеет смысла, так как постоянное сжатие приведет к повышению нагрузки на процессоры сервера и клиента.

gzip_types объявляет типы файлов, которые необходимо сжимать (веб-шрифты, иконки, XML-каналы, структурированные данные JSON и изображения SVG).

http {
. . .
##
# `gzip` Settings
#
#
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css text/javascript application/javascript application/x-javascript text/xml application/xml application/xml+rss application/json;
. . .
}

Сохраните и закройте файл.
Не забывайте, что после внесения изменений необходимо проверять их корректность командой:

nginx -t

Чтобы включить новую конфигурацию, перезапустите Nginx:

sudo systemctl restart nginx

Затем давайте убедимся, что новая конфигурация работает.

Настройка gzip в Apache.

Чтобы включить gzip-сжатие на сервере под управлением Apache, нужно внести изменения в файл .htaccess находящийся в корневой папке вашего сайта.

  # Сжатие HTML, CSS, JavaScript, текста, XML и шрифтов
  AddOutputFilterByType DEFLATE application / javascript
  AddOutputFilterByType DEFLATE application / rss + xml
  AddOutputFilterByType DEFLATE application / vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application / x-font
  AddOutputFilterByType DEFLATE application / x-font-opentype
  AddOutputFilterByType DEFLATE application / x-font-otf
  AddOutputFilterByType DEFLATE application / x-font-truetype
  AddOutputFilterByType DEFLATE application / x-font-ttf
  AddOutputFilterByType DEFLATE application / x-javascript
  AddOutputFilterByType DEFLATE application / xhtml + xml
  AddOutputFilterByType DEFLATE application / xml
  AddOutputFilterByType DEFLATE font / opentype
  AddOutputFilterByType DEFLATE font / otf
  AddOutputFilterByType DEFLATE font / ttf
  AddOutputFilterByType DEFLATE image / svg + xml
  AddOutputFilterByType DEFLATE image / x-icon
  AddOutputFilterByType DEFLATE text / css
  AddOutputFilterByType DEFLATE text / html
  AddOutputFilterByType DEFLATE text / javascript
  AddOutputFilterByType DEFLATE text / plain
  AddOutputFilterByType DEFLATE text / xml
 
  # Удалить ошибки браузера (необходимо только для действительно старых браузеров)
  BrowserMatch ^ Mozilla / 4 gzip-только-текст / html
  BrowserMatch ^ Mozilla / 4 \ .0 [678] no-gzip
  BrowserMatch \ bMSIE! No-gzip! Gzip-only-text / html
  Заголовок приложения Vary User-Agent
</ IfModule>

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.