Nginx pronunciado "motor x" es un servidor proxy inverso y HTTP de alto rendimiento y código abierto responsable de manejar la carga de algunos de los sitios más grandes en Internet. Se puede utilizar como servidor web independiente, equilibrador de carga, caché de contenido y proxy inverso para servidores HTTP y no HTTP.
Comparado con Apache, Nginx puede manejar una gran cantidad de conexiones simultáneas y tiene una huella de memoria más pequeña por conexión.
Este tutorial describe cómo instalar y administrar Nginx en Ubuntu 20.04.
Requisitos previos #
Antes de continuar, asegúrese de haber iniciado sesión como usuario con privilegios de sudo y de no tener Apache ni ningún otro proceso ejecutándose en el puerto 80 o 443.
Instalando Nginx #
Nginx está disponible en los repositorios predeterminados de Ubuntu. Para instalarlo ejecuta los siguientes comandos:
sudo apt update
sudo apt install nginx
Una vez completada la instalación, el servicio Nginx se iniciará automáticamente. Puede verificarlo ejecutando:
sudo systemctl status nginx
La salida se verá así:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-05-02 20:25:43 UTC; 13s ago
...
Eso es todo. Nginx se ha instalado en su máquina Ubuntu. Puede administrar el servicio Nginx de la misma manera que cualquier otra unidad systemd.
Configurando cortafuegos #
Ahora que tiene Nginx instalado y ejecutándose en su servidor, debe asegurarse de que su firewall esté configurado para permitir el tráfico en HTTP (80
) y HTTPS (443
) puertos. Suponiendo que está utilizando UFW
, puede hacerlo habilitando el perfil 'Nginx Full' que incluye reglas para ambos puertos:
sudo ufw allow 'Nginx Full'
Para verificar el tipo de estado:
sudo ufw status
La salida será algo como lo siguiente:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Nginx Full ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
Probar la instalación #
Para probar su nueva instalación de Nginx, abra http://YOUR_IP
en su navegador de elección, y debería ver la página de destino predeterminada de Nginx como se muestra en la imagen a continuación:
Estructura y mejores prácticas del archivo de configuración de Nginx #
- Todos los archivos de configuración de Nginx se encuentran en
/etc/nginx
directorio. - El archivo de configuración principal de Nginx es
/etc/nginx/nginx.conf
. - Para facilitar el mantenimiento de la configuración de Nginx, se recomienda crear un archivo de configuración independiente para cada dominio. Puede tener tantos archivos de bloqueo de servidor como necesite.
- Los archivos de bloque del servidor Nginx se almacenan en
/etc/nginx/sites-available
directorio. Nginx no utiliza los archivos de configuración que se encuentran en este directorio a menos que estén vinculados a/etc/nginx/sites-enabled
directorio. - Para activar un bloque de servidor, debe crear un enlace simbólico (un puntero) desde los sitios del archivo de configuración en un
sites-available
directorio alsites-enabled
directorio. - Se recomienda seguir la convención de nomenclatura estándar. Por ejemplo, si su nombre de dominio es
mydomain.com
entonces su archivo de configuración debe llamarse/etc/nginx/sites-available/mydomain.com.conf
- El
/etc/nginx/snippets
El directorio contiene fragmentos de configuración que se pueden incluir en los archivos de bloque del servidor. Si usa segmentos de configuración repetibles, puede refactorizar esos segmentos en fragmentos e incluir el archivo de fragmento en los bloques del servidor. - Archivos de registro de Nginx (
access.log
yerror.log
) se encuentran en el/var/log/nginx
directorio. Se recomienda tener unaccess
diferente yerror
archivos de registro para cada bloque de servidor. - Puede establecer el directorio raíz de documentos de su dominio en cualquier ubicación que desee. Las ubicaciones más comunes para webroot incluyen:
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>