Установка ngx_pagespeed без пересборки nginx
На днях решил немного ускорить работу сайта путем установки на сервер модуля nginx_pagespeed
, но при этом не хотелось пересобирать сам nginx
. На помощь пришла сборка nginx с включенным модулем от Alexey Degtyarev. А теперь перейдем к самому процессу установки.
Замена nginx
Итак, приступим. Первое, что необходимо сделать - это конечно же backup настроек nginx. Для этого копируем папку /etc/nginx
в укромное место. Далее удаляем nginx.
apt-get remove nginx apt-get remove nginx-common
Далее необходимо добавить репизиторий nginx pagespeed PPA
, обновить список пакетов и установить оттуда новый nginx. Для этого выполняем
add-apt-repository ppa:adegtyarev/nginx-pagespeed apt-get update apt-get install nginx
Когда установка прошла, то можно перейти к настройке веб-сервера. Можно просто заменить содержимое директории /etc/nginx
файлами из вашего бекапа и перезапуститься.
/etc/init.d/nginx restart
или
service nginx restart
Проверяем, что сайт работает. Если нет, то изучаем логи и чиним. Если починить не удалось, то позже я расскажу, как откатиться и вернуть все назад.
Настройка pagespeed
Когда все работает, самое время включить pagespeed и произвести его настройку. Сначала необходимо создать директорию в которую будут сохраняться кэшированные файлы. Например, /var/cache/nginx_pagespeed/
.
mkdir /var/cache/nginx_pagespeed/ chown www-data:www-data /var/cache/nginx_pagespeed/
Следующее действие, которое необходимо совершить, - включить модуль для сайта. Для этого открываем файл с настройками вашего хоста (Например, /etc/nginx/sites-enabled/example.com.conf
). В секции server
необходимо включить модуль pagespeed On
, указать директорию с кэшем pagespeed FileCachePath "/path/to/cache/directory"
, указать один из трех "уровней" конфигурации и в зависимости от этого произвести дальнейшую настройку. В итоге у вас получится что-то вроде этого
pagespeed On; pagespeed FileCachePath "/var/cache/nginx_pagespeed/"; pagespeed RewriteLevel PassThrough; pagespeed EnableFilters collapse_whitespace,extend_cache,rewrite_images,combine_css,rewrite_css,recompress_jpeg,recompress_png,resize_images,rewrite_javascript,combine_javascript; pagespeed JpegRecompressionQuality 85; pagespeed ImageRecompressionQuality 85;
Перезагружаем nginx и проверяем. Меняем настройки, перезагружаем, проверяем. И так до тех пор пока не найдете оптимальную конфигурацию.
Как вернуть все назад
Чтобы откатиться к предыдущей версии nginx необходимо удалить веб-сервер:
apt-get remove nginx
Следом удалить добавленный репозиторий, обновить пакеты и установить старую версию:
add-apt-repository --remove ppa:adegtyarev/nginx-pagespeed apt-get update apt-get install nginx
Иногда выполнение команды add-apt-repository --remove ppa:adegtyarev/nginx-pagespeed
зависает. В этом случае можно удалить репозиторий руками:
rm /etc/apt/sources.list.d/adegtyarev-nginx-pagespeed-trusty.list
Финальный штрих - скопировать свои забекапленные конфигурационные файлы и перезагрузить веб-сервер
/etc/init.d/nginx restart
или
service nginx restart
На этом процесс "возврата к истокам" завершен.
Ссылки по теме
- Проверить свой сайт на Google PageSpeed Insights
- Описание модуля PageSpeed и всевозможных его настроек
P.S. Все манипуляции работают и производились неоднократно на различных серверах с Ubuntu 14.04.3 LTS. При работе с другими дистрибутивами возможны нюансы.