Anteriormente discutimos cómo instalar la pila LEMP, que es una pila de software común para alojar sitios web dinámicos, en Ubuntu 18.04 LTS. Sin embargo, el software en la versión Ubuntu LTS (soporte a largo plazo) a menudo está desactualizado. En este tutorial, aprenderemos cómo instalar la última versión de Nginx en Ubuntu 18.04 y Ubuntu 20.04. Al momento de escribir este artículo, la última versión de Nginx es 1.17.0, lanzada el 21 de mayo de 2019. Puede ver el registro de cambios aquí.
Instalación de la última versión de Nginx en Ubuntu 18.04, 20.04 desde el repositorio oficial de Nginx
Nginx.org mantiene un repositorio para Ubuntu. Podemos usar este repositorio para instalar la última versión de Nginx. Primero, cree un archivo fuente de repositorio para Nginx con el siguiente comando. Nano es un editor de texto de línea de comandos.
sudo nano /etc/apt/sources.list.d/nginx.list
Agregue las siguientes dos líneas en el archivo.
deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ bionic nginx deb-src http://nginx.org/packages/mainline/ubuntu/ bionic nginx
Si usa Ubuntu 20.04, cambie bionic
a focal
.
deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ disco nginx deb-src http://nginx.org/packages/mainline/ubuntu/ disco nginx
Para guardar el archivo en el editor de texto Nano, presione CTRL+O
, luego presione Enter
para confirmar. Presiona CTRL+X
salir. Para verificar la integridad de los paquetes descargados de este repositorio, necesitamos importar la clave pública de Nginx usando los siguientes comandos.
wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key
Una vez que el repositorio se haya agregado a su sistema Ubuntu 18.04, ejecute el siguiente comando para actualizar la información del repositorio.
sudo apt update
Si instaló Nginx desde el repositorio de software predeterminado de Ubuntu, debe eliminarlo.
sudo apt remove nginx nginx-common nginx-full nginx-core
También es posible que desee hacer una copia de seguridad del archivo de configuración principal de Nginx /etc/nginx/nginx.conf
porque será reemplazado por un nuevo nginx.conf
archivo cuando más tarde instalemos la última versión de Nginx.
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
Sus archivos de bloque de servidor existentes (también conocido como archivo de host virtual) estarán intactos. Ahora ejecute el siguiente comando para instalar Nginx desde el repositorio nginx.org.
sudo apt install nginx
Si el administrador de paquetes apt le pregunta si desea instalar una nueva versión del archivo /etc/nginx/nginx.conf, puede responder No.
Después de instalar Nginx, pruebe la configuración de Nginx.
sudo nginx -t
Si la prueba es exitosa, inicie Nginx.
sudo systemctl start nginx
Habilite el inicio automático en el momento del arranque.
sudo systemctl enable nginx
Para verificar el estado de Nginx, ejecute
systemctl status nginx
Salida:
● nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-05-26 21:01:10 CST; 3s ago Docs: http://nginx.org/en/docs/ Process: 16159 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 16160 (nginx) Tasks: 2 (limit: 4915) CGroup: /system.slice/nginx.service ├─16160 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf └─16161 nginx: worker process May 26 21:01:10 bionic.local.domain systemd[1]: Starting nginx - high performance web server... May 26 21:01:10 bionic.local.domain systemd[1]: Started nginx - high performance web server.
Para verificar la versión de Nginx, use este comando:
nginx -v
Salida:
nginx version: nginx/1.17.0
También puede consultar información más detallada con:
nginx -V
Salida:
Configuración del usuario del proceso Nginx
El paquete Nginx del conjunto de repositorios nginx.org nginx
como el usuario del proceso Nginx que se puede deducir de la primera línea de /etc/nginx/nginx.conf
expediente. (Si eligió instalar la nueva versión de /etc/nginx/nginx.conf
archivo.)
user nginx;
Sin embargo, el usuario y grupo predeterminados del proceso PHP-FPM es www-data
como se puede ver en /etc/php/7.2/fpm/pool.d/www.conf
archivo.
user = www-data group = www-data
Así que tenemos que configurar www-data
como usuario del proceso Nginx en /etc/nginx/nginx.conf
archivo.
sudo nano /etc/nginx/nginx.conf
Cambiar
user nginx;
a
user www-data;
Guarde y cierre el archivo. Luego recarga Nginx.
sudo systemctl reload nginx
Incluyendo archivos de bloque de servidor
Por defecto, solo los archivos bajo /etc/nginx/conf.d/
Se incluirá el directorio. Si también desea utilizar archivos de bloqueo del servidor en sites-enabled
directorio, luego asegúrese de agregar las siguientes líneas en el http
sección de nginx.conf
archivo.
include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
Instalar el complemento Certbot Nginx
Si anteriormente instaló Nginx desde el repositorio de Ubuntu, entonces el paquete python3-certbot-nginx probablemente se eliminó cuando instaló Nginx desde el repositorio nginx.org. Necesitamos volver a instalarlo para que su certificado TLS se pueda renovar automáticamente como de costumbre.
sudo apt install python3-certbot-nginx
Cómo reiniciar automáticamente Nginx
A veces, Nginx puede fallar por varias razones. Si prefiere que Nginx se reinicie automáticamente después de un bloqueo, debemos editar la unidad de servicio de Nginx. Primero, copie la unidad de servicio Nginx original en /etc/systemd/system/
directorio.
sudo cp /lib/systemd/system/nginx.service /etc/systemd/system/nginx.service
Luego edite la unidad de servicio.
sudo nano /etc/systemd/system/nginx.service
Agrega la siguiente línea en el [service]
sección.
Restart=always RestartSec=2
Así:
[Service] Type=forking PIDFile=/var/run/nginx.pid ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID Restart=always RestartSec=2
Esto hará que Nginx intente reiniciarse cada 2 segundos después de un bloqueo. Guarde y cierre el archivo. Luego reinicie Nginx.
sudo systemctl restart nginx
Siguiente paso
Espero que este tutorial le haya ayudado a instalar la última versión de Nginx en Ubuntu 18.04 y Ubuntu 20.04. También puede instalar la última versión del servidor de base de datos MariaDB en Ubuntu 18.04 y 20.04.
- Cómo instalar MariaDB 10.5 en Ubuntu 18.04, Ubuntu 20.04
Y si le preocupa la seguridad, puede configurar el cortafuegos de la aplicación web ModSecurity para proteger su sitio de WordPress contra la piratería.
- Cómo configurar ModSecurity con Nginx en Debian/Ubuntu
Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín gratuito para obtener nuevos consejos y trucos 🙂