Добавление модулей nginx в Linux
Как пересобрать nginx с дополнительными модулями на Debian, Ubuntu и CentOS.
При установке nginx штатными средствами ОС добавить или убрать модули невозможно — nginx устанавливается с фиксированным набором. Чтобы подключить нужный модуль, необходимо пересобрать nginx вручную из исходников.
Шаг 1. Получить текущую конфигурацию nginx
Выполните команду и сохраните её вывод в текстовый редактор — он понадобится при конфигурировании:
nginx -V
Пример вывода:
nginx version: nginx/1.12.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log ...
В данном примере установлена версия 1.12.1 — именно её и нужно скачать.
Шаг 2. Скачать исходники nginx
wget http://nginx.org/download/nginx-1.12.1.tar.gz
Распакуйте архив и перейдите в папку с исходниками:
tar -xvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
Шаг 3. Установить модуль PageSpeed
bash <(curl -f -L -sS https://ngxpagespeed.com/install) \
--nginx-version $nginxversion
Сохранить все модули:
bash <(curl -f -L -sS https://ngxpagespeed.com/install) -m
Шаг 4. Сконфигурировать nginx с новым модулем
Из сохранённого вывода nginx -V скопируйте аргументы конфигурации, начиная с --prefix= и до первого --add-module= (все существующие --add-module= не нужны).
Выполните ./configure с этими аргументами и добавьте в конец --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable:
./configure --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-log-path=/var/log/nginx/access.log \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--lock-path=/var/lock/nginx.lock \
--pid-path=/var/run/nginx.pid \
--with-pcre-jit --with-http_gzip_static_module \
--with-http_ssl_module --with-ipv6 \
--without-http_browser_module --with-http_geoip_module \
--without-http_memcached_module --without-http_referer_module \
--without-http_scgi_module --without-http_split_clients_module \
--with-http_stub_status_module --without-http_ssi_module \
--without-http_userid_module --without-http_uwsgi_module \
--add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable
Шаг 5. Собрать nginx
make
make install
После сборки проверьте, что новый модуль присутствует в выводе:
/etc/nginx/sbin/nginx -V
В выводе должна присутствовать строка --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable.
Шаг 6. Заменить бинарник nginx
Остановите nginx:
service nginx stop
Переименуйте текущий бинарник на случай отката:
mv /usr/sbin/nginx /usr/sbin/nginx_back
Переместите новый бинарник:
mv /etc/nginx/sbin/nginx /usr/sbin/nginx
Удалите ставшую ненужной папку:
rm -rf /etc/nginx/sbin
Проверьте, что используется новый бинарник:
nginx -V
В выводе должна присутствовать строка --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable.
Запустите nginx:
service nginx start
Удалите папку с исходниками:
cd ../
rm -rf nginx-1.12.1
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!