Nginx pronunciado como "motor x" es un servidor proxy inverso y HTTP gratuito, de código abierto y de alto rendimiento que alimenta algunos de los sitios más grandes de Internet.
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.
En este tutorial, analizaremos cómo instalar y administrar Nginx en sistemas Ubuntu 16.04.
Requisitos previos #
Antes de comenzar con el tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo y no tener Apache ni ningún otro servicio ejecutándose en el puerto 80 o 443.
Instalar Nginx #
Los paquetes de Nginx están disponibles en los repositorios de software predeterminados de Ubuntu. La instalación es bastante sencilla, simplemente ejecute los siguientes comandos:
sudo apt update
sudo apt install nginx
Una vez completada la instalación, verifique el estado del servicio Nginx escribiendo:
sudo systemctl status nginx
El resultado debería mostrarle que el servicio Nginx está activo y ejecutándose:
● 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-01-05 15:44:04 UTC; 1min 59s ago
Main PID: 1291 (nginx)
CGroup: /system.slice/nginx.service
├─1291 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
└─1293 nginx: worker process
Para verificar el tipo de versión de Nginx:
sudo nginx -v
nginx version: nginx/1.10.3 (Ubuntu)
Ajustar el 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 del cortafuegos:
sudo ufw status
La salida se verá como a continuación:
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 verificar que Nginx funciona como se esperaba, abra http://YOUR_IP
en el navegador de su elección y se le presentará la página de bienvenida predeterminada de Nginx como se muestra a continuación:
Instalar Nginx desde el repositorio Nginx PPA #
Los paquetes de Nginx de los repositorios de Ubuntu suelen estar desactualizados. Para instalar la última versión de Nginx, use el repositorio oficial de Nginx PPA.
Siga los pasos a continuación para instalar la última versión de Nginx en Ubuntu 16.04:
-
Primero instale el
software-properties-common
paquete:sudo apt install software-properties-common
-
Agregue el repositorio Nginx PPA con el siguiente comando:
sudo add-apt-repository ppa:nginx/stable
-
Actualice la lista de paquetes e instale Nginx:
sudo apt update
sudo apt install nginx
-
Una vez completada la instalación, verifique la versión de Nginx con:
sudo nginx -v
La salida se verá así:
nginx version: nginx/1.12.2
Administrar el servicio Nginx con systemctl #
Puede administrar el servicio Nginx de la misma manera que cualquier otra unidad systemd.
-
Para detener el servicio Nginx, ejecute:
sudo systemctl stop nginx
-
Para iniciar el servicio Nginx, escriba:
sudo systemctl start nginx
-
Reinicie 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
-
Deshabilite el servicio Nginx para que comience en el arranque:
sudo systemctl disable nginx
-
Vuelva a habilitar el servicio Nginx para que comience de nuevo en el arranque:
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. - Es una buena idea seguir una 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>