NGINX es un software de servidor web de código abierto. Puede implementar NGINX como un servidor web independiente o como un proxy frente a otros servidores web (en esencia, proxy inverso). Nginx es uno de los mejores servidores web para alojar un sitio web de alto tráfico.
En este tutorial, nos centraremos en instalando NGINX como servidor web independiente en Ubuntu 20.04.
Instale NGINX en Ubuntu 20.04
Primero corre sudo apt-get update para recuperar información sobre paquetes nuevos y actualizados antes de proceder a instalar NGINX.
Nginx está disponible en el repositorio de paquetes de Ubuntu. Por lo tanto, es fácil instalar Nginx usando el siguiente comando:
$ sudo apt-get install nginx
Verifique el estado del servicio NGINX
Hagamos una verificación rápida para confirmar el estado del servicio NGINX, ejecute el siguiente comando:
$ sudo systemctl status nginx
La salida del comando anterior confirma que NGINX es activo y funcionando. Si recibe un mensaje que indica que NGINX está inactivo, no se inició o no se está ejecutando, puede iniciar manualmente el servicio NGINX ejecutando el siguiente comando.
$ sudo systemctl start nginx
Para verificar la versión de Nginx, ejecute:
$ sudo dpkg -l nginx

La salida muestra Nginx versión 1.18.0 se está ejecutando en Ubuntu 20.04, en el momento de escribir este tutorial.
Pruebe el servidor web NGINX
Después de confirmar que el servicio NGINX está activo y en ejecución, ahora puede probar el servidor web abriendo su navegador web preferido e ingresando la dirección IP de su servidor (https: // your_server_ip) en el que está instalado NGINX.
Debería ver la página web predeterminada titulada “¡Bienvenido a nginx!“

Además, confirme que el puerto apropiado esté abierto en su firewall. Por ejemplo, si ha habilitado el Cortafuegos sin complicaciones (ufw) en su servidor Ubuntu, debe intentar actualizar las reglas del firewall para permitir que NGINX se comunique en el puerto 80 y / o 443 de la siguiente manera.
Para permitir NGINX en el puerto 80:
$ sudo ufw allow 'Nginx HTTP'
Para permitir NGINX en el puerto 443:
$ sudo ufw allow 'Nginx HTTPS'
Configurar bloques de servidor NGINX
Si desea alojar varios sitios web en el mismo servidor web NGINX, deberá configurar bloques de servidor. Los bloques de servidor también se conocen como hosts virtuales (principalmente en Apache).
NGINX está preconfigurado con un solo bloque de servidor y ahí es donde los detalles de configuración para el sitio web predeterminado (/ etc / nginx / sites-available) se almacenan (/ var / www / html).
Vamos a ver.
$ sudo ls -l /etc/nginx/sites-available
total 8
-rw-r--r-- 1 root root 2416 Mar 26 2020 default
Ejecute el siguiente comando para mostrar el contenido del archivo de bloque del servidor predeterminado.
$ sudo cat /etc/nginx/sites-available/default | more
Presione la barra espaciadora en su teclado para desplazarse hacia abajo una página a la vez. Verá que el archivo contiene detalles de configuración del servidor predeterminados, como el número de puerto de escucha, la raíz del documento (es decir, la carpeta base para almacenar el contenido del sitio web), el archivo de índice y el nombre del servidor.
También debería ver una sección titulada Configuración de host virtual Como se muestra abajo. Puede configurar su sitio web adicional aquí, pero es mejor crear un archivo de bloque de servidor separado y dejar el predeterminado como está.
/ etc / nginx / sites-available / default
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
Mientras tanto, copie la información de configuración de muestra anterior y guárdela en un editor de texto. Pronto utilizaremos esta información.
Crear la raíz del sitio web
A continuación, deberá crear una carpeta raíz en / var / www para almacenar el contenido de su sitio web adicional. Para example, Voy a crear una carpeta llamada dominio1.com para mi sitio web dominio1.com.
Nota: Debe reemplazar dominio1 con su propio nombre de dominio registrado. También debe actualizar los registros DNS para apuntar su nombre de dominio a la dirección IP pública de su servidor web NGINX.
sudo mkdir /var/www/domain1.com
Crea un archivo de índice
El archivo de índice es la página web principal que se muestra cuando abre un sitio web. Ejecute el siguiente comando para crear un archivo de índice para su sitio web adicional.
$ sudo nano /var/www/domain1.com/index.html
Estoy usando nano en esto example pero puede usar su editor de texto favorito. A continuación, puede copiar y pegar el siguiente código HTML con fines de prueba.
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Domain1!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to Domain1!</h1>
<p>If you see this page, the Domain1 website is working!</p>
</body>
</html>
Save cambios y close el editor de texto.
Crea un bloque de servidor
El siguiente paso es crear un archivo de bloque de servidor para contener los detalles de configuración del sitio web adicional. Ejecute el siguiente comando.
$ sudo nano /etc/nginx/sites-available/domain1
Copie la información de configuración del host virtual de muestra que guardó anteriormente y péguela en el nuevo archivo. A partir de la línea “servidor”, asegúrese de eliminar todos # símbolos para descomentar las directivas. Además, recuerde reemplazar “dominio1” con su propio nombre de dominio registrado en consecuencia.
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
server {
listen 80;
listen [::]:80;
server_name domain1.com www.domain1.com;
root /var/www/domain1.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Save cambios y close Este archivo.
Habilitar el bloqueo del servidor
Para que NGINX sepa que el sitio web adicional está disponible, ejecute el siguiente comando para crear un enlace simbólico al archivo de bloque del servidor.
$ ln -s /etc/nginx/sites-available/domain1 /etc/nginx/sites-enabled
Prueba tu configuración
Correr sudo nginx -t para probar la configuración del bloque del servidor. Debería ver un mensaje que indica que todo está bien.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Puedes correr sudo servicio de recarga de nginx para recargar los archivos de configuración.
Pruebe su nuevo sitio web
Abra un navegador web e ingrese la nueva dirección de su sitio web. Debería ver el contenido del archivo de índice creado para su nuevo sitio web, en lugar de la página web predeterminada de NGINX.

Comandos básicos para controlar NGINX
Aprendamos los comandos básicos de Nginx para administrar su servidor web.
El reiniciar El comando detendrá el servicio y luego lo iniciará nuevamente.
$ sudo systemctl restart nginx
El recargar El comando le dice a NGINX que vuelva a cargar sus archivos de configuración pero sin detener el servicio.
$ sudo systemctl reload nginx
El detener El comando detendrá el servicio NGINX.
$ sudo systemctl stop nginx
A permitir el servicio Nginx para iniciarse en el arranque, ejecute
$ sudo systemctl enable nginx
Nota: De forma predeterminada, el servicio Nginx está habilitado para iniciarse automáticamente cuando se inicia el servidor.
Configuración básica de NGINX y archivos de registro
/ etc / nginx – Contiene todos los archivos de configuración de NGINX
/ etc / nginx / sites-available – Contiene archivos de bloque del servidor que almacenan detalles de configuración para servir uno o más sitios web
/ etc / nginx / sites-enabled – Contiene archivos de configuración para uno o más sitios web habilitados
/etc/nginx/nginx.conf – Archivo de configuración principal que también lee las directivas de configuración en otros archivos
/var/log/nginx/access.log – Ubicación predeterminada para almacenar información sobre todas las visitas a su sitio web
/var/log/nginx/error.log – Ubicación predeterminada para almacenar errores NGINX
Conclusión
Siguiendo esta guía, debería poder poner NGINX en funcionamiento con uno o más sitios web en su servidor Ubuntu 20.04. Pero si tiene algún problema, no dude en hacérnoslo saber en la sección de comentarios a continuación y haremos todo lo posible para ayudarlo.