Cómo instalar Nginx en Ubuntu 20.04 LTS

Guía completa paso a paso para instalar y configurar un servidor web Nginx en un sistema Ubuntu 20.04

Nginx es un servidor web proxy inverso de código abierto y popular disponible en múltiples plataformas. El software fue desarrollado por Igor Sysoev como una solución al problema de C10K y lanzado por primera vez en 2004. El problema de C10K es el problema de manejar diez mil clientes al mismo tiempo, lo cual no era fácil a principios de la década de 2000.

En este tutorial, veremos cómo instalar y configurar Nginx en Ubuntu 20.04 LTS.

Prerrequisitos

Un sistema con Ubuntu 20.04 instalado y un sudo usuario. Además, no necesita tener otro servidor web como Apache ejecutándose en el puerto 80 o 443.

Instalación de Nginx

Nginx está disponible en el repositorio de Ubuntu 20.04 y apto el administrador de paquetes se puede utilizar para instalarlo. Entonces, para instalar Nginx, abra la terminal usando ctrl + alt + t y correr:

sudo apt update && sudo apt install nginx

La instalación se completará pronto y el demonio Nginx se iniciará en segundo plano automáticamente. Entonces, para verificar el estado de Nginx, ejecute:

sudo systemctl estado nginx

Después de ejecutar el comando anterior, debería obtener el estado de Nginx como activo (corriendo) en verde como se ve a continuación.

Configuración de Ubuntu Firewall (UFW)

De forma predeterminada, los puertos salientes HTTP (80) y HTTPS (443) están cerrados en Ubuntu 20.04. Además, el demonio de firewall predeterminado ufw está deshabilitado porque todos los puertos están cerrados.

Por lo tanto, para acceder al servidor Nginx desde otros sistemas, deberá habilitar el ufw y configúrelo correctamente para permitir el tráfico en el puerto 80 y 443. Antes de habilitar ufw, sepa que si está configurando Nginx en un servidor remoto, primero actualice el ufw reglas para permitir ssh mediante la ejecución:

sudo ufw permitir ssh

El comando anterior permite ssh acceso al servidor remoto, sin permitir ssh se le bloqueará el acceso al servidor remoto.

Después de habilitar ssh acceso, puede habilitar el ufw demonio de firewall ejecutando:

sudo ufw habilitar

Ahora, debe cambiar las reglas del firewall para permitir los puertos HTTP y HTTPS para que Nginx pueda atender el tráfico web. Para cambiar las reglas, ejecute:

sudo ufw permite 'Nginx completo'

Nginx completo permite puertos HTTP y HTTPS para el tráfico entrante y saliente de todas las direcciones IP.

Después de eso, verifique si las reglas se agregaron correctamente a ufw firewall ejecutando el comando:

estado de sudo ufw

El comando anterior generará las reglas que agregamos a ufw demonio de firewall.

Conectarse al servidor Nginx

Ahora que hemos instalado Nginx y configurado ufw Para permitir el tráfico web entrante HTTP y HTTPS, debería poder acceder al servidor Nginx utilizando la dirección IP del servidor.

Si no conoce la dirección IP del servidor, use el siguiente comando para recuperarla fácilmente.

ip addr show eth0 | grep inet | awk '{imprimir $ 2; } '| sed 's /\/.*$//'

Una vez que tenga la dirección IP, péguela en su navegador y presione enter.

// su-ip-servidor

Si todo se configuró correctamente, debería poder ver la página web "¡Bienvenido a nginx!".

Archivos y directorios de Nginx

Ahora que tenemos Nginx instalado y ejecutándose en su servidor. Echemos un vistazo a algunos de los archivos y directorios importantes de Nginx que tendrá que usar para configurar su sitio web / aplicación web.

Contenido del servidor web

Puede configurar cualquier ubicación que desee que sea su directorio raíz para su bloque de servidor. El HTML predeterminado de Nginx directamente es / var / www / html, es donde se encuentra la página de "bienvenida" a la que accedimos anteriormente.

Otras ubicaciones que generalmente se usan como directorio raíz para dominios incluyen:

  • /casa//
  • / var / www / html /
  • /optar/

Archivos de configuración de Nginx

Todos los archivos de configuración de Nginx se encuentran en / etc / nginx directorio. Veamos algunos de los archivos importantes que necesitamos para configurar un dominio básico.

  • /etc/nginx/nginx.conf: Este archivo contiene toda la configuración necesaria para ejecutar Nginx.
  • / etc / nginx / sites-available /: Este directorio tiene toda la configuración del bloque de servidor de los dominios, pero actualmente no están habilitados / implementados y, por lo tanto, los clientes no pueden acceder a ellos.
  • / etc / nginx / sites-enabled /: Este directorio contiene los dominios actualmente activos / habilitados accesibles por los clientes. Para habilitar un dominio, necesitamos vincular el archivo de configuración del dominio desde sitios disponibles al sitios habilitados directorio.
  • / etc / nginx / snippets/: En este directorio, podemos almacenar segmentos de configuración potencialmente reutilizables. Ahorra mucho tiempo en el entorno de producción debido al hecho de que puede hacer que los segmentos / bloques de configuración sean reutilizables.

Registros del servidor

Nginx registra los eventos / actividades y los almacena en archivos de registro en el / var / log / nginx directorio. Nginx registra actividades en estos archivos:

  • /var/log/nginx/access.log: Este archivo registra los clientes que han accedido al servidor Nginx. Los detalles incluyen la dirección IP del cliente, la hora y la fecha, el navegador utilizado para acceder al servidor y el sistema operativo.
  • /var/log/nginx/error.log: Este archivo registra los errores encontrados por el servidor Nginx mientras se ejecuta.

Entonces, en esta sección, hemos visto brevemente algunos de los archivos y directorios importantes de Nginx que son suficientes para comenzar.

Configurar bloques de servidor

Ahora que tenemos algunos conocimientos básicos sobre los archivos y el servidor Nginx, estamos listos para configurar nuestro propio bloque de servidor. Los bloques de servidor son similares a los hosts virtuales de Apache.

Veremos cómo crear un bloque de servidor y demostraremos que usaremos example.com como dominio en proceso de creación.

💡 Reemplazar example.com con su nombre de dominio.

Antes de comenzar a configurar los Bloques de servidor, necesitamos crear un directorio que sirva como directorio raíz para el contenido del sitio web. Vamos a crear /var/www/example.com/html directorio para dominio usando mkdir mando.

sudo mkdir -p /var/www/example.com/html

El -pags La opción creará todos los directorios principales necesarios. Es decir, creará example.com un directorio principal para html si no existe.

Cambie la propiedad del directorio con el $ USUARIO Variable ambiental:

sudo chown -R $ USER: $ USER /var/www/example.com/html

A continuación, cree un sencillo index.html archivo al que se accederá cuando visite el dominio que se está configurando. Esto es solo para fines explicativos.

nano /var/www/example.com/html/index.html

Pegue el siguiente contenido en el archivo que acabamos de crear en el servidor.

  ¡Bienvenido a example.com! 

¡Yo! ¡El example.com es accesible!

imprenta ctrl + o para escribir y guardar el index.html archivo y luego, presione ctrl + x salir nano editor.

Ahora, finalmente, podemos pasar a la creación de un bloque de servidor, de modo que Nginx pueda servir al index.html cuando algún usuario va a example.com. Entonces, para crear un bloque de servidor, necesitamos crear un archivo de configuración llamado example.com en sitios disponibles directorio. Para hacerlo, usamos nano y ejecutamos:

sudo nano /etc/nginx/sites-available/example.com

Y luego, escriba o copie / pegue la siguiente configuración. Entonces presione ctrl + o e ingrese para escribir y guardar. Del mismo modo, presione ctrl + x para cerrar el editor nano.

servidor {escuchar 80; escuchar [::]: 80; nombre_servidor example.com www.example.com; root /var/www/example-domain.com/html; index index.html; ubicación / {try_files $ uri $ uri / = 404; }}

La configuración anterior es similar a la configuración predeterminada del bloque del servidor, hemos cambiado raíz declaración para apuntar a nuestro nuevo directorio raíz y cambió el nombre del servidor a nuestro nombre de dominio. Mientras que la ubicación{} La declaración sirve como declaración de captura de errores si no se encuentran los archivos y muestra el error 404 al cliente.

A continuación, podemos habilitar nuestro bloque de servidor para que Nginx sirva example.com páginas web. Para habilitar nuestro bloque de servidor, necesitamos crear un enlace simbólico de example.com archivo de sitios disponibles a sitios habilitados directorio. Para hacerlo, ejecute:

sudo ln -s /etc/nginx/sites-available/example.com / etc / nginx / sites-enabled

Se creará un enlace en habilitado para el sitio directorio y ahora example.com debe estar habilitado. Ahora tenemos dos bloques de servidor habilitados en nuestro servidor Nginx que responderán a la solicitud en función de escucha y nombre_servidor directivas guardadas en example.com configuración del bloque del servidor.

Para comprobar si todos los archivos de configuración son correctos y no hay ningún error de sintaxis, ejecute:

sudo nginx -t

Ahora, finalmente reinicie Nginx para aplicar los cambios ejecutando el siguiente comando:

sudo systemctl reiniciar nginx

Nginx comenzará a servir su bloque de servidor ahora, puede ir a // tu-nombre-de-dominio y vea su página web en vivo.

Nota: Para que la sección anterior funcione, deberá configurar su propio dominio y reemplazar example.com con su propio nombre de dominio. Además, deberá configurar DNS para que su dominio apunte a la dirección IP de su servidor Nginx.

Para concluir, hemos visto cómo instalar Nginx, configurar ufw para permitir el acceso remoto al servidor Nginx, conectado a Nginx de forma remota, se familiarizó con algunos archivos y directorios básicos de Nginx y aprendió cómo configurar un bloque de servidor.

Para conocer y aprender más sobre Nginx, es posible que desee ver la wiki de Nginx.