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

Hosting WebServizi di hosting affidabili per siti web di qualsiasi dimensione.
Ordina
VPSInfrastruttura cloud flessibile con accesso root completo.
Ordina
Server DedicatiServer dedicati per le massime prestazioni.
Ordina

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!

Hai bisogno di aiuto?I nostri ingegneri ti aiuteranno gratuitamente con qualsiasi domanda in pochi minutiContattaci