Para aquellos que usen Debian 11, habrán notado que instalar Nginx directamente desde el repositorio de Debian no instala la última versión, está bastante atrasado.
Para la mayoría, será preferible usar el Nginx predeterminado que viene incluido en Debian, pero para aquellos que quieran usar versiones más nuevas para las últimas características, el siguiente tutorial cubrirá los pasos necesarios para hacerlo.
Prerequisitos
- SO: Debian 11 Bullseye
- Cuenta de usuario: con acceso sudo o root.
Actualizar el Sistema Operativo
Nos aseguramos de que todos los paquetes se encuentren actualizados:
apt update && apt upgrade -y
Eliminar la instalación anterior de Nginx
En primer lugar, es necesario eliminar cualquier instalación anterior de Nginx que esté activa antes de instalar una nueva versión.
Detenemos el servicio de la siguiente manera:
systemctl stop nginx
Hacemos una copia del archivo nginx.conf como respaldo en caso de que accidentalmente sobrescribamos o eliminemos el existente:
cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf
A continuación, eliminamos Nginx utilizando el siguiente comando:
apt remove nginx
Instalar los paquetes necesarios
Se necesitarán algunos paquetes adicionales para instalar las últimas versiones de Nginx (mainline, lo más nuevo, o estable) del repositorio oficial de Nginx. Con el siguiente comando los instalaremos o verificaremos si están instalados en nuestro sistema Debian Bullseye:
apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
Importar los repositorios de Ngnix
A continuación, serán necesarios algunos pasos para importar el repositorio.
Importar la clave GPG
Usando el comando curl, importamos la clave GPG para que el gestor de paquetes de APT pueda verificar la autenticidad de los paquetes de Nginx:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Verificar la clave GPG
A continuación, se recomienda probar y verificar que el archivo de descarga contiene la clave adecuada. Para ello, utilizamos el siguiente comando:
gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
Algo así deberíamos ver:
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14] 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 uid nginx signing key <signing-key@nginx.com>
Importar el repositorio Nginx Mainline
Para configurar e importar el repositorio Nginx Mainline, ejecutamos el siguiente comando:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Importar el repositorio Nginx Stable
En caso de preferir Nginx Stable, usar el siguiente comando:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Fijar la versión del repositorio de Nginx a instalar
Next, use the following pinning command to make Debian use Nginx’s repository over the default Debian Nginx repository:
A continuación, utilizamos el siguiente comando para que el sistema utilice el repositorio de Nginx sobre el repositorio de Nginx predeterminado de Debian:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \ | tee /etc/apt/preferences.d/99nginx
Salida ejemplo:
se o=nginx\nPin-Priority: 900\n" \ | tee /etc/apt/preferences.d/99nginx Package: * Pin: origin nginx.org Pin: release o=nginx Pin-Priority: 900
Instalar Nginx Mainline o Stable
Ahora que hemos configurado el repositorio, antes de ejecutar el comando de instalación de Nginx, necesitamos actualizar la lista de repositorios para reflejar los nuevos cambios:
apt update
A continuación, ejecutamos el comando de instalación de Nginx, esto instalará la última versión de Nginx del repositorio que hayamos importado:
apt install nginx -y
Tener en cuenta que se nos pedirá que mantengamos o reemplacemos el archivo de configuración /etc/nginx/nginx.conf existente durante la instalación. Se recomienda mantener el archivo de configuración actual pulsando (n). Se hará una copia independientemente de la versión del mantenedor, y también podremos comprobarlo en el futuro.
Verificamos si Nginx fue instalado con éxito y a la última versión ejecutando:
nginx -v
Ejemplo de salida (Nginx Mainline)
nginx version: nginx/1.21.1
De forma predeterminada, Nginx debería estar activado si no lo está. Usar:
systemctl start nginx
Para habilitar Nginx para que se inicie en el arranque, utilizamos:
systemctl enable nginx
Ejemplo de salida en caso de éxito:
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable nginx
Verificamos el estado de Nginx:
systemctl status nginx
Actualización de Nginx
Para futuras actualizaciones, todo lo que necesitamos hacer es ejecutar el gestor de paquetes de APT como comprobamos nuestro sistema para las actualizaciones como de costumbre.