GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo obtener el mejor rendimiento del servidor Nginx

Puede ajustar casi cualquier configuración, pero esta publicación se concentra en las pocas configuraciones para las cuales el ajuste beneficia a la mayoría de los usuarios. Hay configuraciones que le recomendamos que cambie solo si tiene un conocimiento profundo de NGINX y Linux. Entonces, sabrá cómo obtener el mejor rendimiento del servidor Nginx

¡Hola chicos! En esta publicación básicamente vemos el ajuste de NGINX usando su archivo de configuración que se encuentra en /etc/nginx/nginx.conf

NGINX es bien conocido como un balanceador de carga, caché y servidor web de alto rendimiento, que alimenta más del 40% de los sitios web más activos del mundo. Para la mayoría de los casos de uso, la configuración predeterminada de NGINX y Linux funciona bien, pero lograr un rendimiento óptimo a veces requiere un poco de ajuste. Esta publicación de blog analiza algunas de las configuraciones de NGINX y Linux que se deben tener en cuenta al ajustar un sistema.

Procesos de trabajo

NGINX puede ejecutar múltiples procesos de trabajo, cada uno capaz de procesar una gran cantidad de conexiones simultáneas. Puede controlar la cantidad de procesos de trabajo y cómo manejan las conexiones con las siguientes directivas

procesos_trabajadores

El número de procesos de trabajo de NGINX (el valor predeterminado es 1). En la mayoría de los casos, la ejecución de un proceso de trabajo por núcleo de CPU funciona bien y recomendamos configurar esta directiva en automático para lograrlo. Hay momentos en los que es posible que desee aumentar este número, como cuando los procesos de trabajo tienen que realizar muchas E/S de disco.

conexiones_trabajadores

El número máximo de conexiones que cada proceso de trabajo puede manejar simultáneamente. El valor predeterminado es 512, pero la mayoría de los sistemas tienen suficientes recursos para admitir un número mayor. La configuración adecuada depende del tamaño del servidor y la naturaleza del tráfico, y puede descubrirse mediante pruebas.

Conexiones de mantenimiento

Las conexiones Keepalive pueden tener un gran impacto en el rendimiento al reducir la sobrecarga de la CPU y la red necesaria para abrir y cerrar conexiones. NGINX finaliza todas las conexiones de clientes y crea conexiones separadas e independientes a los servidores ascendentes. NGINX es compatible con keepalives tanto para clientes como para servidores ascendentes. Las siguientes directivas se relacionan con los keepalives del cliente:

keepalive_requests

El número de solicitudes que un cliente puede realizar a través de una sola conexión de mantenimiento. El valor predeterminado es 100, pero un valor mucho más alto puede ser especialmente útil para realizar pruebas con una herramienta de generación de carga, que generalmente envía una gran cantidad de solicitudes desde un solo cliente.

keepalive_timeout

Cuánto tiempo permanece abierta una conexión keepalive inactiva.
La siguiente directiva se relaciona con los keepalives ascendentes

mantener activo

El número de conexiones keepalive inactivas a un servidor ascendente que permanecen abiertas para cada proceso de trabajo. No hay un valor predeterminado.

Para habilitar conexiones keepalive a servidores ascendentes, también debe incluir las siguientes directivas en la configuración:

Registro de acceso

El registro de cada solicitud consume ciclos de CPU y E/S, y una forma de reducir el impacto es habilitar el almacenamiento en búfer del registro de acceso. Con el almacenamiento en búfer, en lugar de realizar una operación de escritura separada para cada entrada de registro, NGINX almacena en búfer una serie de entradas y las escribe juntas en el archivo en una sola operación.

Las entradas de registro también se escriben cuando un proceso de trabajo vuelve a abrir sus archivos de registro o se apaga. Para deshabilitar completamente el registro de acceso, incluya el parámetro off en la directiva access_log.

Enviar archivo

La llamada al sistema sendfile() del sistema operativo copia datos de un descriptor de archivo a otro, a menudo logrando una copia cero, lo que puede acelerar las transferencias de datos TCP. Para permitir que NGINX lo use, incluya la directiva sendfile en el contexto http o en un contexto de servidor o ubicación. Luego, NGINX puede escribir contenido almacenado en caché o en disco en un socket sin que ningún contexto cambie al espacio del usuario, lo que hace que la escritura sea extremadamente rápida y consuma menos ciclos de CPU. Tenga en cuenta, sin embargo, que debido a que los datos copiados con sendfile() pasan por alto el espacio del usuario, no están sujetos a la cadena de procesamiento normal de NGINX ni a los filtros que cambian el contenido, como gzip. Cuando un contexto de configuración incluye tanto la directiva de archivo de envío como directivas que activan un filtro de cambio de contenido, NGINX desactiva automáticamente el archivo de envío para ese contexto.

Entonces, ya sabes cómo obtener el mejor rendimiento del servidor Nginx

Sitio web de Nginx


Linux
  1. Linux:¿Cómo obtener todos los registros de inicio de sesión del sistema?

  2. Uso de openssl para obtener el certificado de un servidor

  3. ¿Cómo hago para que mi servidor web Golang se ejecute en segundo plano?

  4. ¿Cómo obtener la URL del archivo de Dropbox desde la línea de comando?

  5. ¿Cómo obtengo mi dirección IP desde la línea de comandos?

Cómo instalar Nginx en Fedora 22

Cómo instalar NGINX en Ubuntu 20.04

Cómo instalar Nginx en CentOS 7

Cómo configurar NGINX en un servidor CentOS 7

¿Cómo puedo obtener mensajes de registro del servidor LAMP en Ubuntu 10.04?

¿Cómo puedo obtener la duración de un archivo de video desde la consola?