Búsqueda de sitios web

Cómo instalar el servidor web Nginx en Ubuntu 20.04


Nginx es un servidor web de código abierto y alto rendimiento que controla una enorme cuota de mercado en entornos de producción. Es un servidor web liviano 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.

Requisitos previos

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 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

El resultado anterior indica claramente que Nginx se está ejecutando.

4. Para comprobar 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.

Abrir puertos Nginx en el firewall UFW

Ahora que tiene Nginx instalado y ejecutándose como se esperaba, se requieren algunos ajustes para poder 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 Nginx asociados con el firewall ufw.

  1. Nginx Full: esto abre los puertos 80 y 443 (para cifrado SSL/TLS).
  2. Nginx HTTP: este puerto solo abre 80 (para tráfico web no cifrado).
  3. Nginx HTTPS: abre solo el puerto 443 (para cifrado SSL/TLS).

5. Comience habilitando el firewall en Ubuntu 20.04.


sudo ufw enable

6. Por ahora, dado que no estamos en un servidor cifrado, solo permitiremos el perfil Nginx HTTP 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 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 está funcionando como se esperaba es enviar solicitudes a través de un navegador.

9. Así que dirígete a tu navegador y busca 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 siguiente comando curl para recuperar la IP pública del servidor.

curl ifconfig.me

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

http://server-IP or domain-name

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

Administrar el proceso 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 al reiniciar:

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 perder 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, se recomienda encarecidamente 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.

Vamos a crear un bloque Nginx separado para ofrecer el contenido de nuestro dominio. Para esta guía, usaremos el dominio crazytechgeek.info.
Para su caso, asegúrese de reemplazarlo con su propio nombre de dominio.

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

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

18. A continuación, asigne la propiedad al nuevo directorio utilizando la variable $USER.

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

19. Asegúrese de asignar también permisos de directorio en consecuencia, permitiendo que el propietario tenga todos los permisos (lectura, escritura y ejecución) y otorgando 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 archivo index.html que contendrá el contenido web del dominio.

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

Pegue el contenido siguiente 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 apropiadas. 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 sites-enabled desde el cual el servidor Nginx lee al iniciar.

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

23. Para que los cambios se realicen, reinicie el servidor web Nginx.

sudo systemctl restart nginx

24. Sólo 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ígete a tu navegador y explora el dominio de tu servidor.

http://domain-name

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

Archivos de configuración importantes de Nginx

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

Archivos de configuración de Nginx

  • /etc/nginx/nginx.conf: este es el archivo de configuración principal. Puede modificar la configuración para cumplir con los requisitos de su servidor.
  • /etc/nginx/sites-available: este es el directorio que almacena la configuración del bloque del servidor. Nginx solo usa los bloques del servidor si están vinculados al directorio habilitado para sitios.
  • /etc/nginx/sites-enabled: el directorio contiene bloques de servidor Nginx por sitio que ya están habilitados.

Archivos de registro de Nginx

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

  • /var/log/nginx/access.log: registra todas las solicitudes realizadas al servidor web.
  • /var/log/nginx/error.log: este es el archivo de registro de errores y registra todos los errores que encuentra Nginx.
Conclusión

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. Tus comentarios son bienvenidos.