Nginx
Última actualización
Última actualización
Nginx es un servidor web y proxy inverso de alto rendimiento. Es conocido por su eficiencia, escalabilidad y capacidad para manejar una gran cantidad de conexiones simultáneas.
Los archivos que se crean dentro de /etc/nginx
son los siguientes directorios:
El archivo principal de configuración se encuentra en /etc/nginx/nginx.conf
. Este archivo contiene la configuración principal y desde aquí puedes modificar configuraciones globales.
/etc/nginx/sites-available
y /etc/nginx/sites-enabled
: Directorios utilizados para la gestión de sitios virtuales. Los archivos de configuración de sitios virtuales se encuentran en sites-available
. Para activar un sitio, se crea un enlace simbólico en sites-enabled
.
Una de las características principales de nginx es que desde el archivo nginx.conf
, puedes definir servidores utilizando bloques server { }
. Esto se usa para definir la configuración para un servidor web específico o un "sitio virtual".
Cada bloque server
se utiliza para configurar cómo Nginx debe responder a las solicitudes entrantes para un determinado conjunto de criterios, como el nombre del servidor, el puerto o la dirección IP.
Esto seria un ejemplo:
El resultado será que al entrar en el dominio a través del puerto 80 se conectará al index.html
Como cualquier servidor web y, especialmente, los que tienen funciones de proxy tienen funciones de registro:
Los errores se registran en /var/log/nginx/error.log
.
Los registros de accesos se encuentran en /var/log/nginx/access.log
.
Para aprovechar todos los cores de la máquina en la que estemos, es recomendable dejar la opción por defecto. El resultado será que se levanten tantos workers como cores tenga la cpu.
Si Nginx está realizando un trabajo intensivo de CPU, como SSL o gzipping, y tiene 2 o más CPU/núcleos, puede establecer worker_processes para que sea igual al número de CPU o núcleos.
Si está sirviendo muchos archivos estáticos y el tamaño total de los archivos es mayor que la memoria disponible, puede aumentar worker_processes para utilizar completamente el ancho de banda del disco.
La configuración de los "workers" se realiza en el archivo principal de configuración, comúnmente llamado nginx.conf
, añade para que vaya en función de todos los nucleos:
Los worker processes con subrutinas que controlan el flujo de procesamiento del servidor:
Los worker processes de Nginx manejan la solicitud entrante.
Puede ir más allá de los núcleos disponibles si tiene acceso de E/S.
Respecto a los worker_connections:
Cada worker process puede abrir de forma predeterminada 512 conexiones.
Puede cambiar este límite con worker_connections <NUM>;
Puede establecer el límite máximo con: ulimit -n
por lo tanto podemos calcular que:
Dependiendo del rol que tenga nginx en tu arquitectura ( como Proxy , como servidor de estáticos, etc…) habrá que tener en cuenta en qué bloque y qué valor de configuración tomamos.
keepalive_timeout 10; (default 75)
keepalive_requests 1024; (default 100)
client_header_timeout 10; (default 60)
client_body_timeout 10; (default 60)
send_timeout 10; (default 60)
sendfile on; (default off)
tcp_nopush on; (default off)
tcp_nodelay on; (default on)
Dentro del archivo de configuración básica de nginx.conf
se añade:
Nginx, como mejora de Apache, permite ampliar su funcionalidad por medio del uso de módulos. Algunos de los módulos más importantes que nos podemos encontrar son:
HTTP Referer. Filtra peticiones recibidas en función de la cabecera Referer.
HTTP Limit Zone. Limita el número de conexiones simultáneas desde un mismo cliente.
User ID. Proporciona cookies identificativas.
FLV. Permite reproducir vídeo en streaming.
Perl. Módulo que permite ejecutar Perl directamente dentro de Nginx.
Secure Link. Este módulo ofrece la posibilidad de proteger páginas mediante clave secreta.
Resumen de codigos de configuración de nginx con ejemplos:
listen
)server_name
)access_log
)gzip
, client_max_body_size
)return 301
)upstream
)Este documento es ahora más estructurado y fácil de leer. ¡Déjame saber si necesitas modificaciones! 🚀
Referencia:
Dentro de un bloque server añade las siguientes líneas tal y como se ha visto en el:
Vamos a tomar como referencia este , pero tened en cuenta que estos no son los únicos parámetros:
WebDAV. Ofrece soporte para .
XSLT. Funcionalidad que permite el post-procesamiento de páginas mediante