miércoles, 17 de octubre de 2018

Primeros pasos con nginx



Cómo instalar nginx, configurarlo y empezar a usarlo en una máquina Linux.



NGINX es un software de código abierto apto para usarse como servidor web, reverse proxy, almacenamiento en caché, balanceo de carga, transmisión TCP, etc. Comenzó como un servidor web diseñado para ofrecer el máximo rendimiento y estabilidad y progresó hasta ser uno de los mejores productos del mercado en varias áreas.

Personalmente, nginx me gusta mucho por su facilidad de configuración y por su gran potencial como reverse proxy, siendo un producto Open Source (con opción a licencia Enterprise) mejor que la mayoría de productos de pago destinados a la gran empresa (véase F5 Big-IP).


Instalación



Para instalar nginx, deberemos desplegar primero un sistema Linux. Nnginx se puede instalar sobre las principales distribuciones Linux: CentOS, RHEL, SUSE, Debian, Ubuntu... Según la distribución Linux que hayamos elegido, deberemos instalar un repositorio u otro de entre los repositorios oficiales de nginx.

Una vez añadido al sistema el repositorio correspondiente de nginx, ya podemos instalar el software de acuerdo al gestor de paquetes de nuestra distribución:

HOST# yum install nginx

HOST# zypper install nginx

HOST# apt install nginx

Después de instalar nginx, hay que iniciarlo:

HOST# systemctl start nginx.service

Y una vez iniciado, habilitamos que se inicie automáticamente cada vez que se reinicie la máquina:

HOST# systemctl enable nginx.service


Configuración



Con nignx instalado y corriendo, ya podemos empezar a configurarlo. Para configurar nginx y personalizar sus parámetros, solo hace falta modificar un archivo:

/etc/nginx/nginx.conf

A diferencia de Apache, que tiene varios archivos a modificar según lo que se quiera configurar, nginx lo junta todo en un solo archivo, lo cual facilita su análisis y modificación.

Otra diferencia entre Apache y nginx es que nginx no se basa en procesos, sino en eventos. Las peticiones hacia el servidor se clasifican como eventos (nginx) y no como nuevos procesos de trabajo (Apache). Estos eventos se distribuyen entre los procesos existentes, que son mantenidos en memoria por el proceso principal.

La cantidad de procesos existentes y la manera en la que se dividen las solicitudes del servidor (eventos) se definen en el archivo nginx.conf, y se pueden aumentar o disminuir según la capacidad de computo y la RAM de la máquina donde se ejecuta nginx:

worker_processes 1; events {     worker_connections 1024; }

Ejemplo de configuración de procesos y eventos en nginx.conf


Señales



Los procesos de nginx se controlan con el parámetro –s y una señal (signal) de la siguiente manera:

HOST# sudo nginx -s signal

Signal puede ser cualquiera de estas opciones:

- stop: finaliza nginx (cierra el programa).
- quit: nginx finaliza después de que todas las solicitudes activas hayan sido contestadas.
- reload: el archivo de configuración se vuelve a cargar.
- reopen: se reinician los archivos de registro.

La opción que más vamos a usar es reload. Cada vez que hagamos un cambio en nginx.conf, deberemos usar la señal reload para recargar la configuración y que nginx use los nuevos parámetros.

Cuando se hace un reload, lo primero que hace nginx es verificar la sintaxis del archivo nginx.conf. Si hay un error en la configuración, nginx muestra el error en la terminal y mantiene la configuración previa, de modo que el servicio no se ve afectado. Si no hay errores o si ya se ha corregido el error y se hace un reload, la nueva configuración entra en uso en cuanto las sesiones activas terminan.

Si queremos comprobar si hay errores en nginx.conf antes de efectuar un reload, podemos hacer:

# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Si nginx.conf está correctamente formado, se nos devolverá el mensaje "test is successful". De otro modo, nginx nos dirá en que línea hay un error y cuál es ese error, para que podamos corregirlo antes de hacer un reload de la configuración.

Hasta aquí llega este artículo sobre como instalar nginx, como iniciarlo y como modificar sus parámetros. En sucesivas entradas, iré mostrando cómo configurar nginx para usarlo como reverse proxy o cómo usarlo para servir contenido vía HTTP, entre otras cosas.
0

0 comentarios:

Publicar un comentario