Сжатие и кеширование браузером для NGINX

Не всегда бывает достаточно внесения правок в .htaccess файл для включения жизненно-необходимых для быстрой работы сайта функций, как сжатие и кеширование браузером. Особенно если у вас сервер на NGINX.


Приведу пример для включения этого функционала.

Сразу сделаем оговорку. Вы должны иметь доступ к файл

nginx.conf

из каталога

/usr/local/nginx/conf

, или

/etc/nginx

, или

/usr/local/etc/nginx

, в зависимости от ОС. Это подразумевает что у Вас выделенный или виртуальный сервер. На обычных хостингах может помочь только обращение в техническую поддержку.

Сжатие GZIP для сайта на NGINX

Выглядит это следующим образом

http {

  #buffer_size, разные include и прочие общие настройки

  gzip on;
  gzip_min_length 1000;
  gzip_proxied any;
  gzip_disable "MSIE [1-6].(?!.*SV1)";
  gzip_types text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json;
  gzip_comp_level 1;

  server {
    #настройки каждого из сайтов на сервере
  }
}

Таким образом для всех сайтов на сервере включается сжатие.

Кеширование браузером

Для кеширования необходимы следующие изменения:

location ~* ^.+.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
  expires 30d;
  #Остальные директивы
}

Таким образом решается эта простая проблема, которая становится порой серьезной головной болью вебмастеров, плохо знакомых с работой системного администратора Linux.


EnglishRussianUkrainian