Настраиваем кэширование файлов и GZIP-сжатие на сайте в Nginx
Не так давно мне довелось поработать на одном сайте, который находился не на хостинге, а на выделенном сервере. Одно из отличий первого от второго – это то, что на выделенном сервере вы можете сделать более тонкие настройки.
Как вы поняли из заголовка, задача была настроить кэширование и GZIP-сжатие на таком сайте, и сейчас я расскажу вам, как это сделать.
Все операции мы проводим в файле конфигураций, который находится по адресу:
/etc/nginx/nginx.conf
В простом FTP вы можете не найти папку ect, для этого воспользуйтесь стандартным менеджером файлов, который находится в панели управления сервером.
Настраиваем GZIP-сжатие на сайте в Nginx
После того как файл конфигурации открыт, в нем нас будут интересовать две секции: это http {…} и server {…}.
Для включения GZIP-сжатия на вашем сайте в секцию http, сразу после «http {», вставьте:
gzip_static on;
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 9;
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;
Если какие-то из строк уже есть в этой секции, то удалите их. Таким способом мы включили GZIP-сжатие на сайте. Вы также можете поиграть с настройками параметра «gzip_comp_level 9». Здесь «9» – это максимальный уровень сжатия, а минимально возможный – «1».
Максимальный уровень требует немного больше ресурсов. Если после включения сжатия вы наблюдаете небольшие зависания сайта, то измените «9» на «5» - оптимальное значение.
Настраиваем кэширование файлов на сайте в Nginx
Для настройки кэширования файлов мы будем вносить изменения в секции server.
Для этого сразу после «server {» вставьте:
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js|woff|ttf|svg|swf|mp3|ogg|avi|zip|rar)$ {
try_files $uri $uri/ @fallback;
expires 7d;
}
Здесь «expires 7d;» – это количество дней, которым нужно кэшировать файлы (в нашем случае – 7 дней). Список необходимых файлов вы можете отредактировать сами, а также дополнить его необходимыми форматами.
После того как все необходимые настройки сделаны, вам необходимо перезапустить Nginx.
Для этого в SSH Terminal'e выполните команду:
service nginx restart
На этом мы заканчиваем настройку, направленную на ускорение работы вашего сайта.