Nginx, pronunciado "Engine X", es una utilidad de servidor de código abierto. Fue diseñado para funcionar como un proxy inverso, interceptando las solicitudes de los clientes y enrutándolas a un servidor apropiado.
Desde entonces, ha crecido para incluir funciones de equilibrio de carga, anonimización y escalado. También tiene funciones que pueden manejar solicitudes de recursos estáticos más rápidamente que Apache, lo que le permite equilibrar las solicitudes para mejorar el rendimiento y el uso de recursos estratégicamente.
Esta guía lo guiará a través de la configuración e instalación de Nginx en Ubuntu 18.04 (Castor biónico).
Requisitos previos
- Un sistema que ejecuta Ubuntu 18.04
- Una cuenta de usuario con privilegios de sudo
- La utilidad administrador de paquetes apt, incluida de forma predeterminada
- El UFW, o UnComplicated Firewall, incluido por defecto
- Acceso SSH
Pasos para instalar Nginx en Ubuntu
Actualizar repositorios de software
Inicie sesión en su servidor a través de SSH como usuario raíz
ssh [email protected]
Antes de instalar un nuevo software, se recomienda enfáticamente actualizar su base de datos de software local. La actualización ayuda a asegurarse de que está instalando el software más reciente y con los mejores parches disponibles.
Introduzca lo siguiente:
sudo apt update
Permita que el proceso termine.
Instalar Nginx en Ubuntu
Introduzca lo siguiente para instalar Nginx en Ubuntu :
sudo apt install nginx
Es posible que el sistema tarde un tiempo en descargar los paquetes de software e instalarlos. Permita que se complete antes de continuar.
Verificar que el servicio Nginx se esté ejecutando
Use el siguiente comando para verificar el estado del servicio Nginx:
sudo systemctl status nginx
El sistema debería devolver una lista de información sobre el servicio Nginx. La línea activa indica si el servicio se está ejecutando o no. Si necesita iniciar el servicio, utilice lo siguiente:
sudo systemctl start nginx
También puede utilizar los siguientes comandos en lugar de inicio:
sudo systemctl stop nginx
– detiene el servicio Nginxsudo systemctl enable nginx
– permite que Nginx se cargue al iniciosudo systemctl disable nginx
– evita que Nginx se cargue al inicio
Permitir el tráfico de Nginx a través de un cortafuegos
Puede generar una lista de las reglas de firewall usando el siguiente comando:
sudo ufw app list
Esto debería generar una lista de perfiles de aplicación. En la lista, debería ver cuatro entradas relacionadas con Nginx:
Nginx full
– abre el puerto 80 para el tráfico web normal y el puerto 443 para el tráfico web cifrado seguroNginx HTTP
– Abre el puerto 80 para el tráfico web normalNginx HTTPS
– Abre el puerto 443 para tráfico web encriptadoOpenSSH
– Esta es una configuración para operaciones SecureShell, que le permite iniciar sesión en un servidor remoto a través de una conexión cifrada y segura
Para permitir el tráfico HTTP normal a su servidor Nginx, use el perfil HTTP de Nginx con el siguiente comando:
sudo ufw allow ‘Nginx HTTP’
Para verificar el estado de su firewall, use el siguiente comando:
sudo ufw status
Debería mostrar una lista del tipo de tráfico web HTTP permitido a diferentes servicios. Nginx HTTP debe aparecer como PERMITIR y en cualquier lugar.
Pruebe Nginx en un navegador web
Abra un navegador web, como Firefox.
Ingrese la dirección IP de su sistema en la barra de direcciones o escriba localhost .
Su navegador debería mostrar una página que le dé la bienvenida a Nginx.
Definir bloques de servidor
Nginx usa un archivo de configuración para determinar cómo se comporta. Una forma de usar el archivo de configuración es definir bloques de servidor, que funcionan de manera similar a un host virtual de Apache.
Nginx está diseñado para actuar como un frente para varios servidores, lo que se hace mediante la creación de bloques de servidor.
De forma predeterminada, el archivo de configuración principal de Nginx se encuentra en /etc/nginx/nginx.conf. Los archivos de configuración del bloque del servidor se encuentran en /etc/nginx/sites-available .
Para ver el contenido del archivo de configuración del bloque del servidor predeterminado, ingrese el siguiente comando en una terminal:
sudo vi /etc/nginx/sites-available/default
Esto debería abrir el archivo de configuración predeterminado en el editor de texto Vi, que debería verse así:
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
[...]
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
[...]
}
- Los comandos de escucha decirle a Nginx qué puertos mirar para el tráfico
- Servidor_predeterminado define esto como el bloque que se entregará a menos que el cliente especifique lo contrario
- Raíz determina qué directorio contiene el directorio raíz del sitio web que se está sirviendo
- Nombre_servidor le permite especificar un nombre para un bloque de servidor en particular, que se usa en configuraciones más avanzadas
- Ubicación le permite dirigir la ubicación donde Nginx debe enrutar el tráfico
Crear un bloque de servidor de muestra
Configurar un archivo HTML
Pasar por una configuración de muestra es útil. En una ventana de terminal, ingrese el siguiente comando para crear un directorio de "prueba" para trabajar:
sudo mkdir /var/www/example
Cree y abra un archivo de índice HTML básico para que funcione como una página web de prueba:
sudo vi /var/www/example/index.html
En el editor de texto Vi (puede sustituir su editor de texto preferido si lo desea), ingrese lo siguiente:
Welcome to the Example Website!
Guarde el archivo y salga.
Configurar un bloque de servidor simple
Use el siguiente comando para crear un nuevo archivo de bloqueo de servidor para nuestro sitio web de prueba:
sudo vi /etc/nginx/sites-available/example.com
Esto debería iniciar el editor de texto Vi y crear un nuevo archivo de bloque de servidor.
Introduzca las siguientes líneas en el archivo de texto:
server {
listen 80;
root /var/www/example;
index index.html;
server_name www.example.com;
}
Esto le dice a Nginx que mire el /var/www/example directorio para los archivos a servir, y usar el archivo index.html que creamos como la página principal del sitio web.
Guarde el archivo y salga.
Cree un enlace simbólico para activar el bloqueo del servidor
En la ventana de terminal, ingrese el siguiente comando:
sudo ln –s /s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
Esto crea un enlace y habilita su sitio web de prueba en Nginx. Reinicie el servicio Nginx para aplicar los cambios:
sudo systemctl restart nginx
Empezar a probar
En una ventana del navegador, visite www.example.com.
Nginx debería interceptar la solicitud y mostrar el texto que ingresamos en el archivo HTML.