Cómo compilar NGINX desde el código fuente en Ubuntu 24.04/22.04/20.04

La creación de NGINX desde el código fuente en Ubuntu ofrece un enfoque personalizado para configurar su servidor web, lo que garantiza un rendimiento óptimo y compatibilidad con su entorno específico. A diferencia de las instalaciones binarias, compilar NGINX desde el código fuente brinda la flexibilidad de habilitar o deshabilitar módulos específicos, integrar módulos de terceros y aplicar parches personalizados. Este proceso permite una comprensión más profunda del funcionamiento interno del servidor y facilita una configuración más segura y eficiente adaptada a sus requisitos únicos.

Aspectos destacados clave de la construcción de Nginx:

  • Configuración personalizada: Adapte NGINX para satisfacer sus necesidades habilitando solo los módulos requeridos.
  • Rendimiento mejorado: Optimice NGINX para su hardware y carga de trabajo, mejorando potencialmente los tiempos de respuesta y el uso de recursos.
  • Características avanzadas: Acceda a funciones y módulos de vanguardia que pueden no estar disponibles en paquetes precompilados.
  • Seguridad: Aplique parches específicos y compile con opciones reforzadas en seguridad para una implementación más segura.
  • Oportunidad de aprendizaje: Obtenga un conocimiento profundo de la arquitectura y las opciones de configuración de NGINX.
  • Control: Mantenga control total sobre la configuración del servidor, incluidas las rutas de directorio y los archivos de configuración.
  • A hoy: Cree la última versión de NGINX y acceda a nuevas funciones y correcciones de errores antes del lanzamiento del paquete.
  • Soporte comunitario: Aproveche el amplio conocimiento y los recursos de la comunidad de código abierto para solucionar problemas y realizar mejoras.

Con estas ventajas en mente, construir NGINX desde una fuente es un enfoque poderoso para quienes buscan el máximo control y eficiencia de su servidor web.

Profundicemos en los pasos detallados para compilar NGINX desde el código fuente en Ubuntu.

Instalar paquetes iniciales para NGINX Source en Ubuntu

Actualice Ubuntu antes de compilar NGINX

Para iniciar la instalación del código fuente NGINX en Ubuntu, comience actualizando y mejorando su sistema. Este paso garantiza que todos los paquetes de su sistema estén actualizados, minimizando posibles problemas de compatibilidad.

Ejecute el siguiente comando en su terminal para actualizar y mejorar su sistema:

sudo apt update && sudo apt upgrade

Instalación de dependencias para la compilación NGINX

Con su sistema actualizado, el siguiente paso consiste en instalar las dependencias necesarias para la compilación de NGINX. Estos paquetes, como compiladores y bibliotecas, son cruciales para crear NGINX desde el código fuente.

Para instalar las dependencias requeridas, ejecute el siguiente comando:

sudo apt install build-essential libpcre3-dev libssl-dev zlib1g-dev libgd-dev

El comando instala varios paquetes cruciales, cada uno de los cuales cumple una función específica en el proceso de compilación de NGINX:

  • build-essential: Incluye el compilador GCC y herramientas relacionadas, que son indispensables para compilar software desde el código fuente.
  • libpcre3-dev: Proporciona bibliotecas para compatibilidad con expresiones regulares compatibles con Perl 5, crucial para la reescritura de URL y otras funcionalidades de NGINX.
  • libssl-dev: Ofrece bibliotecas para soporte SSL/TLS, lo que garantiza una transmisión segura de datos, un aspecto clave de los servicios web modernos.
  • zlib1g-dev: Esencial para las funcionalidades de compresión, este paquete ayuda a mejorar el rendimiento y la velocidad de NGINX.
  • libgd-dev: Admite capacidades de procesamiento de imágenes, lo que permite a NGINX realizar manipulaciones de imágenes directamente.

Descargar el código fuente de NGINX en Ubuntu

Seleccionar la versión de NGINX

Después de instalar las dependencias requeridas, proceda a descargar el código fuente de NGINX. Visite el sitio web de NGINX para seleccionar la versión que se adapte a sus necesidades. Puede elegir entre la versión principal, estable o cualquier versión específica. Las versiones principales se actualizan periódicamente con las últimas funciones y mejoras, mientras que las versiones estables se centran en una estabilidad bien probada para entornos de producción.

Descargando el código fuente

A descargar la versión seleccionada de NGINX, utilizar el wget dominio. Este comando le permite descargar archivos directamente desde Internet a su servidor. Por ejemplo, para descargar la versión principal 1.23.3 como ejemplo, use el siguiente comando:

wget http://nginx.org/download/nginx-x.x.x.tar.gz

Nota: Reemplace el número de versión con la versión más reciente o preferida que desea instalar. Consulte siempre el sitio web de NGINX para conocer las versiones más recientes y aprovechar las últimas funciones y actualizaciones de seguridad. Recuerde, las versiones principales pueden actualizarse cada pocos meses, por lo que mantenerse informado sobre las últimas versiones es crucial para mantener un entorno de servidor seguro y eficiente.

Extraer el código fuente de NGINX

Desembalaje del NGINX Tarball

Una vez que haya descargado el código fuente de NGINX, el siguiente paso es extraer los archivos del tarball. Este proceso implica descomprimir el archivo tar.gz para acceder al código fuente de NGINX. Utilizar el tar comando con las banderas apropiadas para extraer el contenido.

Así es como se hace, tomando nuestra versión de ejemplo, NGINX 1.23.3:

tar -xzvf nginx-1.23.3.tar.gz

Este comando se descompone de la siguiente manera:

  • x: Extraiga los archivos.
  • z: Descomprima el archivo usando gzip.
  • v: Modo detallado para mostrar el proceso de extracción.
  • f: Especifique el nombre de archivo del archivo comprimido.

Cambiar al directorio NGINX

Después de extraer los archivos, debe cambiar al directorio donde se descomprimió la fuente NGINX. Este paso es crucial para comenzar el proceso de compilación.

Utilizar el cd comando para moverse al directorio NGINX extraído:

cd nginx-1.23.3

Configurar opciones de compilación para NGINX en Ubuntu

Configurar opciones de configuración

Al prepararse para compilar NGINX desde el código fuente, la configuración de sus opciones de compilación adapta la instalación a sus necesidades específicas. Utilice el ./configure comando para establecer rutas y habilitar varios módulos. Aquí hay un comando que incorpora opciones y rutas de configuración comunes:

./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --with-pcre  --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_image_filter_module=dynamic --modules-path=/etc/nginx/modules --with-http_v2_module --with-stream=dynamic --with-http_addition_module --with-http_mp4_module

Este comando establece varias rutas para archivos NGINX e incluye módulos que mejoran la funcionalidad de NGINX, como soporte SSL y procesamiento HTTP/2.

Personalizando su compilación NGINX

Al personalizar su compilación NGINX, el ./configure script es una poderosa herramienta que permite una amplia personalización. A continuación le mostramos cómo puede adaptar su instalación NGINX para cumplir con requisitos específicos:

Configuraciones de ejemplo

Para habilitar la compatibilidad con HTTP/2 e integrar la biblioteca PCRE, que es crucial para procesar expresiones regulares en NGINX, utilice la siguiente configuración:

./configure --with-http_v2_module --with-pcre

Si necesita definir el directorio de instalación para NGINX, puede configurarlo usando el --prefix opción. Por ejemplo, para instalar NGINX en el /usr/local/nginx directorio, el comando sería:

./configure --prefix=/usr/local/nginx

Para incorporar módulos adicionales como ngx_cache_purge, el --add-module La opción entra en juego. Para incluir este módulo, la configuración quedaría así:

./configure --add-module=/path/to/ngx_cache_purge

Incluir bibliotecas adicionales como libxslt o libssl es sencillo con el --with-XXX-module opción. Para incluir estas librerías los respectivos comandos serían:

./configure --with-libxslt-module
./configure --with-openssl=/path/to/openssl

Para activar módulos como SSL y el módulo IP real los comandos de configuración serían:

./configure --with-http_ssl_module
./configure --with-http_realip_module

Estas configuraciones demuestran sólo algunas maneras en que puede utilizar el ./configure script para personalizar su compilación NGINX.

Para obtener una lista completa de todas las opciones disponibles, puede ejecutar ./configure --help. Este comando proporciona información detallada sobre todos los indicadores y opciones que puede utilizar para optimizar su instalación de NGINX.

Comience el proceso final para compilar NGINX

Compilando NGINX

Una vez que haya configurado las opciones de configuración para NGINX, inicie el proceso de compilación con el make dominio. Este comando compila el código fuente de NGINX en función de los parámetros definidos en el ./configure guion. El proceso de compilación da como resultado la creación del ejecutable binario NGINX, que normalmente se encuentra en el objs directorio.

make

Instalación de NGINX

Después de compilar NGINX, continúe con la instalación usando sudo make install. Este comando instala el binario NGINX, los archivos de configuración y los archivos adicionales necesarios en la ruta del prefijo especificado. Si no ha definido una ubicación diferente durante la configuración, NGINX se instala en /usr/local/nginx/ por defecto.

sudo make install

Después de la instalación, encontrará NGINX en la sbin directorio dentro de la ruta del prefijo designado, listo para su posterior configuración y uso.

Crear servicio NGINX SystemD

Después de compilar e instalar NGINX con éxito desde el código fuente, el siguiente paso es administrar NGINX como un servicio utilizando systemd. Esto le permitirá iniciar, detener y reiniciar NGINX como cualquier otro servicio de Ubuntu.

Crear un archivo de servicio SystemD para NGINX

Para configurar un servicio systemd para NGINX, comience creando un nuevo archivo de servicio:

sudo nano /etc/systemd/system/nginx.service

En este archivo, ingrese los siguientes detalles, asegurándose de reemplazar /path/to/nginx con la ruta real a su binario NGINX si no está ubicado en /usr/sbin/nginx:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
        
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
        
[Install]
WantedBy=multi-user.target

Esta configuración configura NGINX como un servicio, define cómo debe iniciarse, detenerse y recargarse, y garantiza que se inicie después de que la red esté en línea.

Recargando SystemD para reconocer el nuevo servicio

Después de definir el servicio, actualice systemd para reconocer su nuevo servicio NGINX:

sudo systemctl daemon-reload

Iniciar y habilitar el servicio NGINX

Con el servicio systemd implementado, inicie el servicio NGINX:

sudo systemctl start nginx

Para garantizar que NGINX se inicie automáticamente al arrancar, habilite el servicio:

sudo systemctl enable nginx

Verificar la instalación de NGINX

Prueba de la funcionalidad NGINX

Después de instalar NGINX, es fundamental verificar su funcionamiento. Puede acceder a la página de bienvenida de NGINX a través de un navegador web. Utilice la dirección de host local o la dirección IP de su servidor para navegar a la página de prueba de NGINX.

Abra su navegador web e ingrese la siguiente URL para acceder a la página de bienvenida de NGINX usando localhost:

http://localhost

Uso de la dirección IP para la verificación

Si al acceder al localhost no se muestra la página de bienvenida de NGINX, puede usar la dirección IP de su servidor. Reemplazar 192.128.1.1 con la dirección IP real de su servidor:

http://192.128.1.1

Cuando acceda a estas URL, debería ver la página de bienvenida predeterminada de NGINX, que indica que NGINX está instalado y ejecutándose correctamente en su servidor Ubuntu. Si la página no aparece, asegúrese de que NGINX se esté ejecutando y que ninguna regla de firewall bloquee el acceso al servicio.

Consejos adicionales para construir NGINX

Compilando NGINX con módulos adicionales

Mejore las capacidades de NGINX incluyendo módulos adicionales durante el proceso de compilación. Por ejemplo, si desea agregar el módulo push HTTP NGINX, utilice el --add-module bandera durante el paso de configuración. Siga estos comandos para compilar NGINX con el módulo push HTTP:

./configure --add-module=/path/to/nginx-http-push-module
make
sudo make install

Reemplazar /path/to/nginx-http-push-module con la ruta real al módulo que desea incluir.

Administrar NGINX con comandos Systemctl

En Ubuntu, administrar el servicio NGINX es sencillo con los comandos systemctl. A continuación se explica cómo controlar el servicio NGINX utilizando el terminal:

Inicie NGINX:

sudo systemctl start nginx

Detener NGINX:

sudo systemctl stop nginx

Reinicie NGINX:

sudo systemctl restart nginx

Recargar NGINX:

sudo systemctl reload nginx

Verificación de estado de NGINX

sudo systemctl status nginx

Habilite NGINX en el arranque del sistema

sudo systemctl enable nginx

Deshabilite NGINX en el arranque del sistema:

sudo systemctl disable nginx

Conclusión

En esta guía, cubrimos cómo compilar NGINX desde el código fuente en Ubuntu 24.04, 22.04 y 20.04, desde la instalación de paquetes hasta la administración del servicio. Este proceso le permite personalizar NGINX con módulos adicionales y controlarlo usando systemctl. Mantenga su NGINX actualizado y configurado correctamente para obtener el mejor rendimiento y seguridad. Experimente con la configuración y disfrute de su servidor NGINX en Ubuntu.

Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)