Aggiungere moduli nginx su Linux
Come ricompilare nginx con moduli aggiuntivi su Debian, Ubuntu e CentOS.
Quando nginx viene installato tramite il gestore pacchetti del sistema operativo, non è possibile aggiungere o rimuovere moduli — nginx viene fornito con una configurazione di build fissa. Per includere un modulo personalizzato, nginx deve essere ricompilato manualmente dai sorgenti.
Passo 1. Ottenere la configurazione nginx corrente
Esegui il comando seguente e salva l'output in un editor di testo — ti servirà durante il passo di configurazione:
nginx -V
Esempio di output:
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 ...
In questo esempio è installata la versione 1.12.1 — scarica la stessa versione nel passo successivo.
Passo 2. Scaricare i sorgenti di nginx
wget http://nginx.org/download/nginx-1.12.1.tar.gz
Estrai l'archivio ed entra nella directory dei sorgenti:
tar -xvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
Passo 3. Installare il modulo PageSpeed
bash <(curl -f -L -sS https://ngxpagespeed.com/install) \
--nginx-version $nginxversion
Salvare tutti i moduli:
bash <(curl -f -L -sS https://ngxpagespeed.com/install) -m
Passo 4. Configurare nginx con il nuovo modulo
Dall'output nginx -V salvato, copia gli argomenti di configurazione a partire da --prefix= fino (escluso) al primo --add-module= — le eventuali voci --add-module= esistenti non sono necessarie.
Esegui ./configure con quegli argomenti e aggiungi --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable in fondo:
./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
I nostri prodotti e servizi
Passo 5. Compilare nginx
make
make install
Al termine della compilazione, verifica che il nuovo modulo sia presente:
/etc/nginx/sbin/nginx -V
L'output deve includere --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable.
Passo 6. Sostituire il binario di nginx
Ferma nginx:
service nginx stop
Rinomina il binario attuale come fallback:
mv /usr/sbin/nginx /usr/sbin/nginx_back
Sposta il binario appena compilato nella posizione corretta:
mv /etc/nginx/sbin/nginx /usr/sbin/nginx
Rimuovi la directory ora superflua:
rm -rf /etc/nginx/sbin
Verifica che il nuovo binario sia in uso:
nginx -V
L'output deve includere --add-dynamic-module=/root/incubator-pagespeed-ngx-latest-stable.
Avvia nginx:
service nginx start
Elimina la directory dei sorgenti:
cd ../
rm -rf nginx-1.12.1
Aiuto
Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!