Cómo compilar NGINX desde el código fuente en Debian 12, 11 o 10

La creación de NGINX desde el código fuente en Debian 12, 11 o 10 ofrece varios beneficios y posibles inconvenientes. La compilación desde el código fuente le permite personalizar NGINX con módulos específicos y optimizaciones adaptadas a sus necesidades, lo que proporciona un mayor control sobre el proceso de compilación. Este método también puede garantizar que tenga las funciones y parches de seguridad más recientes antes de que estén disponibles en los repositorios oficiales.

Sin embargo, existen algunas desventajas potenciales a considerar. La compilación desde el código fuente requiere más tiempo y esfuerzo en comparación con la instalación de paquetes precompilados. También requiere una buena comprensión del proceso de construcción y las dependencias. Además, administrar las actualizaciones puede ser más complejo, ya que es necesario recompilar NGINX manualmente para cada nueva versión.

Esta guía demostrará cómo compilar NGINX desde el código fuente en Debian 12, 11 o 10, y cubrirá los pasos y comandos necesarios para garantizar una instalación exitosa.

Paso 1: Actualizar y actualizar Debian

Antes de comenzar la instalación, actualice su sistema Debian. Utilice estos comandos en la terminal:

sudo apt update
sudo apt upgrade

Estos comandos buscarán la lista de actualizaciones disponibles y luego actualizarán su sistema, asegurando que esté trabajando con el software más reciente.

Paso 2: instalar las dependencias necesarias

Instale los paquetes iniciales necesarios para compilar Nginx con el siguiente comando:

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

Paso 3: descargue el código fuente de NGINX

Con las dependencias necesarias instaladas, el siguiente paso es descargar el código fuente de NGINX. Visita el Sitio web de NGINX y elige la versión que mejor se adapta a tus necesidades. Puede optar por la última versión principal, estable u otra.

Utilice el comando wget para descargar la versión elegida:

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

Reemplace xxx con el número de versión. Por ejemplo, para descargar la última versión principal, 1.25.1, utilice lo siguiente:

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

Nota: No copie el comando anterior; este es sólo un ejemplo. Asegúrese de obtener el último enlace de descarga estable o principal.

Paso 4: extraiga el código fuente

El código fuente viene en un tarball comprimido. Extráigalo usando este comando:

tar -xzvf nginx-1.25.1.tar.gz

Luego, navegue hasta el directorio recién extraído:

cd nginx-1.25.1

Paso 5: configurar las opciones de NGINX

Para este paso, configure las opciones de NGINX desde la fuente. Esto significa elegir las rutas y los módulos para su compilación NGINX. Utilice este comando:

./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-http_v3_module --with-stream=dynamic --with-http_addition_module --with-http_mp4_module

Esto es lo que significan las opciones:

  • –prefix=/var/www/html: establece el directorio raíz para la instalación.
  • –sbin-path=/usr/sbin/nginx: establece dónde va el programa nginx.
  • –conf-path=/etc/nginx/nginx.conf: elige la ubicación principal del archivo de configuración de NGINX.
  • –http-log-path=/var/log/nginx/access.log y –error-log-path=/var/log/nginx/error.log: Defina dónde están los archivos de registro.
  • –with-pcre: activa PCRE (Expresiones regulares compatibles con Perl) para archivos de configuración.
  • –lock-path=/var/lock/nginx.lock y –pid-path=/var/run/nginx.pid: establece ubicaciones para los archivos lock y pid.
  • –with-http_ssl_module: Activa el módulo SSL para conexiones web seguras.
  • –with-http_image_filter_module=dynamic: activa el módulo de filtro de imágenes.
  • –modules-path=/etc/nginx/modules: Define dónde van los módulos dinámicos.
  • –with-http_v2_module: activa el módulo HTTP/2.
  • –with-stream=dynamic: Activa dinámicamente el módulo de transmisión.
  • –with-http_addition_module y –with-http_mp4_module: active los módulos de adición y MP4.

Si no desea utilizar el módulo HTTP/3, simplemente omita –with-http_v3_module. HTTP/3 ofrece una navegación web más rápida y confiable.

Paso 6: Instale NGINX (compilar y compilar NGINX)

Después de configurar las opciones para compilar NGINX desde el código fuente, es hora de compilar e instalar NGINX. Este es un proceso de dos pasos:

Primero el make El comando compila el código fuente de NGINX usando las opciones especificadas en el ./configure guion. Esto crea el ejecutable binario NGINX:

make

En segundo lugar, el sudo make install El comando instala el binario NGINX, los archivos de configuración y otros archivos en la ruta del prefijo especificada en el ./configure guion:

sudo make install

Después de la instalación, NGINX se ubicará en el sbin directorio de la ruta del prefijo.

Paso 7: crear el servicio Systemd NGINX

Después de construir y compilar NGINX desde el código fuente, es crucial crear un proceso systemd para administrar el servicio NGINX en su sistema. Así es cómo:

Cree un nuevo archivo de servicio systemd:

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

Agregue el siguiente contenido al archivo:

[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

Vuelva a cargar el demonio systemd:

sudo systemctl daemon-reload

Inicie el servicio NGINX:

sudo systemctl start nginx

Habilite el servicio NGINX para que se inicie automáticamente en el arranque:

sudo systemctl enable nginx

Finalmente, asegúrese de que el servicio esté activado:

systemctl status nginx

Paso 8: prueba NGINX

Para verificar que NGINX se esté ejecutando correctamente, abra un navegador web y navegue hasta la página de prueba usando su host local o dirección IP del servidor:

http://localhost

O reemplazar localhost con la dirección IP de su servidor.

Comandos y consejos adicionales

Compile NGINX con módulos adicionales

Puede mejorar la funcionalidad de NGINX compilándolo con módulos adicionales. Por ejemplo, para usar el módulo push HTTP de Nginx, use el indicador –add-module durante la configuración de NGINX:

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

Conclusión

Si sigue estos pasos, podrá compilar e instalar NGINX con éxito desde el código fuente en su sistema Debian. Este enfoque le brinda mayor flexibilidad y control sobre su instalación NGINX, permitiéndole adaptarla a sus requisitos específicos. Compruebe periódicamente si hay actualizaciones y vuelva a compilar según sea necesario para mantener la seguridad y el rendimiento. Disfrute de las capacidades mejoradas y las opciones de personalización que proporciona la creación de NGINX desde el código fuente.

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

Deja un comentario