Nginx: compila un modulo esterno

In questo tutorial ti spiegherò come compilare un modulo esterno per Nginx per aggiungere ulteriori funzionalità al server web.

Per illustrare questo tutorial, prenderò come esempio il modulo http-headers-more-filter che consente di modificare le intestazioni (hearder) inviate dalle richieste HTTP.

Prima di iniziare, assicurati di avere installato il compilatore:

sudo apt install gcc

Il primo passo è verificare se il modulo è presente, inserire il comando seguente per verificare.

nginx -V 2>&1 | grep --color 'http-headers-more-filter'

Se il comando non restituisce nulla, il modulo non è presente.

Per compilare il modulo avremo bisogno dei sorgenti Nginx, recuperate la versione installata utilizzando il comando:

nginx-V

Come puoi vedere nello screenshot qui sotto, è installato Nginx 1.21.0.

Scarica i sorgenti della versione Nginx installata, nell’esempio utilizzerò il seguente comando:

wget https://nginx.org/download/nginx-1.21.0.tar.gz

Decomprimere l’archivio utilizzando il comando tar:

tar -xzvf nginx-1.21.0.tar.gz

Usando il comando ll, possiamo vedere che l’archivio è decompresso.

Ora devi scaricare i sorgenti del modulo. i sorgenti del modulo Listeners-more sono disponibili qui : openresty/headers-more-nginx-module: Set, add, and clear arbitrary output headers in NGINX http servers (github.com).

Cloniamo il repository utilizzando il comando git:

git clone https://github.com/openresty/headers-more-nginx-module.git

Quindi elenca per verificare che il repository sia clonato.

A seconda dei moduli desiderati, potrebbero essere necessarie delle dipendenze, qui è necessario installare i seguenti pacchetti:

  • libpcre3-dev
  • zlib1g
sudo apt install libpcre3-dev zlib1g

Vai alla cartella che contiene i sorgenti Nginx:

cd nginx-1.21.0

Ora configureremo la compilazione del modulo utilizzando il comando seguente:

./configure --add-dynamic-module=../headers-more-nginx-module

Adatta il percorso del parametro –add-dynamic-module= che desideri compilare.

Una volta configurata la compilazione, compilatela con il comando:

make modules

Il modulo è compilato, il file .so del modulo si trova nella cartella objs della cartella sorgente di Nginx.

Ora devi spostare il file .so nella cartella /etc/nginx/modules. Una volta spostato il file, devi dire a Nginx di caricare il modulo.

Apri il file nginx.conf e aggiungi l’istruzione load_module.

load_module modules/ngx_http_header_more_filter_modules.so

Quindi riavvia Nginx

sudo systemctl restart nginx

Ora sai come compilare un modulo esterno per Nginx.




Lascia un commento