Icono del sitio RDR-IT

Nginx: compila un módulo externo

En este tutorial, explicaré cómo compilar un módulo externo para Nginx para agregar funcionalidad adicional al servidor web.

Para ilustrar este tutorial, tomaré como ejemplo el módulo http-headers-more-filter que le permite modificar los encabezados (oyentes) enviados por las solicitudes HTTP.

Antes de comenzar, asegúrese de tener instalado el compilador:

sudo apt install gcc

El primer paso es verificar si el módulo está presente, ingrese el siguiente comando para verificar.

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

Si el comando no devuelve nada, el módulo no está presente.

Para compilar el módulo, necesitaremos las fuentes de Nginx, recupere la versión instalada usando el comando:

nginx-V

Como se puede ver en la captura de pantalla siguiente, Nginx 1.21.0 está instalado.

Descargue las fuentes de la versión de Nginx instalada, en el ejemplo usaré el siguiente comando:

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

Descargue las fuentes de la versión de Nginx instalada, en el ejemplo usaré el siguiente comando:

tar -xzvf nginx-1.21.0.tar.gz

Usando el comando ll, podemos ver que el archivo está descomprimido.

Ahora debes descargar las fuentes del módulo. las fuentes del módulo de oyentes-más están disponibles aquí: openresty/headers-more-nginx-module: Set, add, and clear arbitrary output headers in NGINX http servers (github.com).

Clonamos el repositorio usando el comando git:

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

Luego haga una lista para verificar que el repositorio esté clonado.

Dependiendo de los módulos que desees, pueden ser necesarias dependencias, aquí necesitas instalar los siguientes paquetes:

sudo apt install libpcre3-dev zlib1g

Vaya a la carpeta que contiene las fuentes de Nginx:

cd nginx-1.21.0

Ahora configuraremos la compilación del módulo usando el siguiente comando:

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

Adapte la ruta del parámetro –add-dynamic-module= que desea compilar.

Una vez configurada la compilación, compílala con el comando:

make modules

El módulo está compilado, el archivo .so del módulo se encuentra en la carpeta objs de la carpeta fuente de Nginx.

Ahora debe mover el archivo .so a la carpeta /etc/nginx/modules. Una vez que se ha movido el archivo, debes decirle a Nginx que cargue el módulo.

Abra el archivo nginx.conf y agregue la instrucción load_module.

load_module modules/ngx_http_header_more_filter_modules.so

Luego reinicie Nginx

sudo systemctl restart nginx

Ahora sabes cómo compilar un módulo externo para Nginx.

Salir de la versión móvil