Cómo instalar el servidor web Nginx en Ubuntu 20.04


Nginx es un servidor web de código abierto y de alto rendimiento que tiene una gran participación de mercado en entornos de producción. Es un servidor web ligero y robusto que se utiliza principalmente para alojar sitios web de alto tráfico.

Lectura relacionada: Cómo instalar el servidor web Apache en Ubuntu 20.04

En esta guía, aprenderá cómo instalar el servidor web Nginx y configurar el bloque del servidor Nginx (hosts virtuales) en Ubuntu 20.04 LTS.

Para comenzar, asegúrese de tener una instancia de Ubuntu 20.04 LTS con acceso SSH y un usuario de Sudo con privilegios de root. Además, se recomienda una conexión a Internet estable para instalar paquetes de Nginx.

Instalación de Nginx en Ubuntu 20.04

1. Antes de instalar Nginx, actualice las listas de paquetes de su servidor.

$ sudo apt update

2. Luego instale Nginx ejecutando el comando:

$ sudo apt install nginx

Cuando se le solicite continuar, presione 'Y' en el teclado y presione ENTER. La instalación se realizará en tan solo unos segundos.

3. Con Nginx instalado correctamente, puede iniciarlo y verificarlo ejecutando:

$ sudo systemctl start nginx
$ sudo systemctl status nginx

La salida anterior indica claramente que Nginx se está ejecutando.

4. Para verificar la versión de Nginx, ejecute:

$ sudo dpkg -l nginx

El resultado indica que estamos ejecutando Nginx 1.17.10, que es la última versión en el momento de escribir este artículo.

Puertos abiertos Nginx en UFW Firewall

Ahora que tiene Nginx instalado y funcionando como se esperaba, se requieren algunos ajustes para acceder a Nginx a través de un navegador web. Si está ejecutando el firewall UFW, debe permitir el perfil de la aplicación Nginx.

Hay 3 perfiles de Nginx asociados con el firewall ufw.

  1. Nginx Full – This opens both port 80 & 443 (For SSL / TLS encryption).
  2. Nginx HTTP – This open only port 80 ( For unencrypted web traffic).
  3. Nginx HTTPS – Opens only port 443 (For SSL / TLS encryption).

5. Empiece por habilitar el firewall en Ubuntu 20.04.

$ sudo ufw enable

6. Por ahora, dado que no estamos en un servidor encriptado, solo permitiremos el perfil HTTP de Nginx que permitirá el tráfico en el puerto 80.

$ sudo ufw allow 'Nginx HTTP'

7. Luego, vuelva a cargar el firewall para que los cambios persistan.

$ sudo ufw reload

8. Ahora verifique el estado del firewall para verificar los perfiles que se han permitido.

$ sudo ufw status

Probando el Nginx en Ubuntu 20.04

Nginx se ejecuta en el navegador como es de esperar con cualquier servidor web y la forma más segura de probar si se está ejecutando como se espera es enviar solicitudes a través de un navegador.

9. Diríjase a su navegador y busque la dirección IP o el nombre de dominio del servidor. Para verificar la IP de su servidor, ejecute el comando ifconfig:

$ ifconfig

10. Si está en un servidor en la nube, ejecute el comando curl a continuación para recuperar la IP pública del servidor.

$ curl ifconfig.me

11. En el campo URL de su navegador, ingrese la dirección IP de su servidor o el nombre de dominio y presione ENTER.

http://server-IP or domain-name

Debería obtener una página de bienvenida predeterminada de Nginx como se muestra.

Administrar el proceso de Nginx en Ubuntu 20.04

12. Para detener el servidor web Nginx, simplemente ejecute:

$ sudo systemctl stop nginx

13. Para volver a activar el servidor web, ejecute:

$ sudo systemctl start nginx

14. Para iniciar Nginx automáticamente al arrancar o reiniciar, ejecute:

$ sudo systemctl enable nginx

15. Si desea reiniciar el servidor web, especialmente después de realizar cambios en los archivos de configuración, ejecute:

$ sudo systemctl restart nginx

16. Alternativamente, puede recargar para evitar que se caigan las conexiones como se muestra.

$ sudo systemctl reload nginx

Configuración del bloque del servidor Nginx en Ubuntu 20.04

Si planea alojar más de un sitio en su servidor, es muy recomendable configurar un bloque de servidor Nginx. El bloque del servidor es el equivalente al host virtual de Apache.

De forma predeterminada, Nginx se envía con su bloque de servidor predeterminado que está configurado para servir contenido web en la ruta /var/www/html .

Para su caso, asegúrese de reemplazarlo con su propio nombre de dominio.

17. Para crear un archivo de bloque de servidor, primero, cree un directorio para su dominio como se muestra.

$ sudo mkdir -p /var/www/crazytechgeek.info/html

18. Luego, asigne la propiedad al nuevo directorio usando la variable mial .

$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

19. Asegúrese de que también asigna permisos de directorio en consecuencia, lo que permite al propietario tener todos los permisos (leer, escribir y ejecutar) y otorgar a otras partes solo permisos de lectura y ejecución.

$ sudo chmod -R 755 /var/www/crazytechgeek.info

20. Dentro del directorio del dominio, cree un index.html un archivo que contendrá el contenido web del dominio.

$ sudo vim /var/www/crazytechgeek.info/html/index.html

Pegue el contenido a continuación en el archivo de prueba de muestra.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

Guarde los cambios y salga del archivo.

21. Para que el servidor web Nginx proporcione el contenido que acaba de agregar, debe crear un bloque de servidor con las directivas adecuadas. En este caso, creamos un nuevo bloque de servidor en:

$ sudo vim /etc/nginx/sites-available/crazytechgeek.info

Pegue la configuración que se muestra.

server {
        listen 80;
        listen [::]:80;

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info  www.crazytechgeek.info;

        location / {
                try_files $uri $uri/ =404;
        }
}

Guardar y Salir.

22. Ahora habilite el archivo de bloqueo del servidor vinculándolo al directorio habilitado para sitios desde el cual el servidor Nginx lee al inicio.

$ sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

23. Para que se efectúen los cambios, reinicie el servidor web Nginx.

$ sudo systemctl restart nginx

24. Solo para asegurarse de que todas las configuraciones estén en orden, ejecute el comando:

$ nginx -t

Si todas las configuraciones están en orden, debería obtener el resultado que se muestra a continuación:

25. El servidor web Nginx ahora debería servir el contenido de su dominio. Una vez más, diríjase a su navegador y explore el dominio de su servidor.

http://domain-name

Su contenido personalizado en el directorio de su dominio se publicará como se muestra.

Archivos de configuración importantes de Nginx

Antes de terminar, es crucial que examinemos algunos de los archivos de configuración importantes asociados con Nginx.

  • /etc/nginx/nginx.conf: This is the main configuration file. You can modify the settings to meet your server’s requirements.
  • /etc/nginx/sites-available: This is the directory that stores the server block configuration. Nginx only uses the server blocks if they are linked to the sites-enabled directory.
  • /etc/nginx/sites-enabled: The directory contains per-site Nginx server blocks that are already enabled.

Hay dos archivos de registro principales que puede utilizar para solucionar problemas de su servidor web Nginx:

  • /var/log/nginx/access.log: This logs all the requests made to the webserver.
  • /var/log/nginx/error.log: This is the error log file and it records all the errors that Nginx encounters.

Hemos llegado al final de este tutorial. Hemos mostrado cómo puede instalar Nginx en Ubuntu 20.04 y cómo puede configurar bloques de servidor Nginx para servir el contenido de su dominio. Sus comentarios son bienvenidos.