nginx и gzip_static: еще один способ снизить нагрузку на сервер

Отдача предварительно сжатых файлов для снижения нагрузки на процессор

Чем меньше размер страниц сайта, тем меньше расход трафика, загрузка канал и выше скорость загрузки страниц. Один из самых распространённых способов уменьшения страниц — сжатие перед отправкой пользователю. В Apache для этих целей используется mod_deflate, в nginx — ngx_http_gzip_module.html. В других web-серверах используются похожие решения. Что mod_deflate, что ngx_http_gzip_module используют сжатие «на лету» — файл сжимается перед отдачей [...]

← Вернуться к полной версии записи «nginx и gzip_static: еще один способ снизить нагрузку на сервер»…

Автор: ; опубликовано в: nginx, Администрирование; метки: nginx, WordPress, нагрузка, сжатие, трафик
8
Ноя
2009

RSS Комментарии к статье «nginx и gzip_static: еще один способ снизить нагрузку на сервер» (8)  »

  1. Спасибо за статью.
    Посмотреть, если в Вашей версии поддержка «ngx_http_gzip_static_module» можно в выводе команды nginx -V

    У меня ошибка вылезла:
    find: invalid predicate `-readable’

    Пришлось этот параметр затереть, без него всё нормально сработало.

      • CentOS 5.4 и на Gentoo пробывал.
        Ошибка одна и та-же.

        Ещё кстати вопросик в голове возник:
        У меня в nginx.conf gzip с 5-м уровнем компрессии стоит (слабый VDS): gzip_comp_level 5;
        А в ручную я сжал с 9-м уровнем.
        Вопрос: Он пережимать файлы будет из-за разной степени сжатия или он сразу готовый, сжатый файл отдаёт?

        • Всегда будет отдавать готовый файл. Даже если исходный изменится. Поэтому при изменении исходного файла его нужно пережимать.

          Я у себя этот скрипт вообще на крон повесил.

  2. Alexander

    А к чему жать HTML? Если они часто меняются и их постоянно нужно пережимать, то это уже лишнее, nginx налету их жмет нормально и нагрузку создать почти не успевает :) Сжатие выше 5 тоже лишнее, реальной пользы от 9 мало.

    При большом количестве html файлов на винте, будет проще прописать

    [-]
    View Code nginx configuration
    location ~* ^.+\.(css|js|html)$ {
        root /home/user/site.com;
        expires    1d;
        error_page 404 = @fallback;
    }

    Так дело до Apache совсем не дойдет.

    Оправдано жать только css и js

    • Статика редко изменяется (хотя всегда есть исключения).

      Идея в том, чтобы не заставлять nginx сжимать файлы на лету, а вместо этого отдавать заранее сжатый файл. Спички, но всё же. Я сейчас собираю статистику, но пока не проанализирую логи, ничего конкретно сказать не могу. Хотя чисто визуально на графике munin средняя загрузка системы чуть меньше.

      Так дело до Apache совсем не дойдет.

      А смысл вообще в nginx, если статика отдаётся Апачу? Обычно nginx отдаёт статику, а запросы к PHP проксирует Апачу. Хотя если стоит nginx, то Апач вообще не нужен :-)

      Оправдано жать только css и js

      Согласен, в основном они и создают нагрузку.

      PS — Ваш регэксп можно чуть упростить: \.(css|js|html)$

  3. В скрипте ошибка

    GZIP=»gzip -9 -c»
    $GZIP -9 -c «$1″ > «$GZ_NAME»

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «nginx и gzip_static: еще один способ снизить нагрузку на сервер»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा