При установке nginx средствами ОС в Linux нет возможности сконфигурировать его установку, чтобы добавить или убрать какие-либо модули и nginx устанавливается "как есть".

Если необходимо добавить какой-либо модуль, то нужно пересобрать nginx вручную.

# nginx -V
nginx version: nginx/1.12.1  
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)  
built with OpenSSL 1.0.1e-fips 11 Feb 2013  
TLS SNI support enabled  
configure arguments: --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 --without-http_geo_module --without-http_limit_req_module --without-http_limit_zone_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-module=/tmp/buildd/nginx-1.12.0/debian/modules/nginx-echo

Сохраним вывод команды nginx -V в текстовый редактор - эта информация пригодится при конфигурировании.
Видим, что версия nginx у нас установлена 1.12.1 - скачиваем такую же версию:

# wget http://nginx.org/download/nginx-1.12.1.tar.gz

Распакуем архив и перейдём в папку nginx-1.12.1:

# tar –xvf nginx-1.12.1.tar.gz
# cd nginx-1.12.1

Далее, потребуется установить предустановленный набор модулей.

# bash <(curl -f -L -sS https://ngxpagespeed.com/install) \
     --nginx-version $nginxversion

Сохраняем все модули:

bash <(curl -f -L -sS https://ngxpagespeed.com/install) -m  

После установки пакетов приступаем к конфигурированию nginx с добавлением модулей.

Для этого копируем из текстового редактора вывод команды nginx -V начиная с --prefix= и до первого --add-module= (все присутствующие в выводе --add_module= не нужны).
После чего пишем в консоли ./configure и вставляем скопированное из редактора:

./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 чтобы получилось так:

./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

Нажимаем Enter и ждём окончания процесса.

Теперь можно собрать бинарник nginx - выполняем 2 команды:

# make
# make install

По окончании сборки проверяем, что nginx собрался с нужным нам модулем:

# /etc/nginx/sbin/nginx -V

Результат:

nginx version: nginx/1.12.1  
TLS SNI support enabled  
configure arguments: ./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

Как видим, --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable в выводе команды присутствует. Осталось заменить текущий бинарник nginx новым, который мы только что собрали.

Останавливаем nginx:

# service nginx stop

Переименовываем (на всякий случай) текущий nginx в nginx_back:

# mv /usr/sbin/nginx /usr/sbin/nginx_back

Перемещаем на его место новый собранный бинарник:

# mv /etc/nginx/sbin/nginx /usr/sbin/nginx

Удаляем ненужную больше папку /etc/nginx/sbin:

# rm -r -f /etc/nginx/sbin

Проверяем ещё раз, что nginx у нас теперь тот, что нужно:

# nginx -V

Результат:

nginx version: nginx/1.12.1  
TLS SNI support enabled  
configure arguments: ./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

Запускаем nginx:

# service nginx start

Удаляем ненужную больше папку nginx-1.12.1:

# cd ../
# rm -r -f nginx-1.12.1
Обновлено 17 апреля 2020 г.