Nginx pronunciado como "motor x" es un servidor proxy inverso y HTTP gratuito, de código abierto y de alto rendimiento responsable de manejar la carga de algunos de los sitios más grandes de Internet.
Nginx se puede utilizar como servidor web independiente y como proxy inverso para Apache y otros servidores web.
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 describirá los pasos necesarios para instalar Nginx en una máquina con Ubuntu 18.04.
Requisitos previos #
Antes de comenzar con el tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo y de no tener Apache ni ningún otro servidor web ejecutándose en el puerto 80
o 443
.
Instalando Nginx #
Los paquetes de Nginx están disponibles en los repositorios predeterminados de Ubuntu. La instalación es bastante sencilla.
Comenzaremos actualizando la lista de paquetes y luego instalaremos Nginx:
sudo apt update
sudo apt install nginx
Una vez que se complete la instalación, el servicio Nginx se iniciará automáticamente. Puede comprobar el estado del servicio con el siguiente comando:
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 Sun 2018-04-29 06:43:26 UTC; 8s ago
Docs: man:nginx(8)
Process: 3091 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 3080 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 3095 (nginx)
Tasks: 2 (limit: 507)
CGroup: /system.slice/nginx.service
├─3095 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─3097 nginx: worker process
Configurando cortafuegos #
Suponiendo que está utilizando UFW
para administrar su firewall, deberá abrir HTTP (80
) y HTTPS (443
) puertos. 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 el navegador de su elección y se le presentará la página de inicio predeterminada de Nginx, como se muestra en la siguiente imagen:
Administración del servicio Nginx #
Puede administrar el servicio Nginx de la misma manera que cualquier otro servicio systemd.
Para detener el servicio Nginx, ejecute:
sudo systemctl stop nginx
Para iniciarlo de nuevo, escriba:
sudo systemctl start nginx
Para reiniciar el servicio Nginx:
sudo systemctl restart nginx
Vuelva a cargar el servicio Nginx después de haber realizado algunos cambios de configuración:
sudo systemctl reload nginx
De forma predeterminada, el servicio Nginx se iniciará al arrancar. Si desea deshabilitar el servicio Nginx para que comience en el arranque:
sudo systemctl disable nginx
Y para volver a habilitarlo de nuevo:
sudo systemctl enable nginx
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>