Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

NGINX es un servidor web popular, gratuito y de código abierto. Las configuraciones predeterminadas de NGINX son lo suficientemente buenas para que el servidor web funcione.

Sin embargo, si desea utilizar NGINX al máximo, debe jugar con sus archivos de configuración y establecer los parámetros que optimizarán el rendimiento del servidor. Encontrará los archivos de configuración en el /etc/nginx directorio en una máquina Linux.

¿Qué es NGINX?

NGINX es un servidor web moderno que puede usar como transmisor de medios, servidor de correo, proxy inverso, balanceador de carga, servidor de caché y más.

Utilizado por muchos perfiles importantes como VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter, etc., NGINX es ampliamente conocido por su rendimiento de primer nivel. Otra ventaja de usar NGINX es que es fácil de configurar y aprender.

instagram viewer

Requisitos previos para ajustar el rendimiento de NGINX en Linux

Debe cumplir con los siguientes requisitos antes de comenzar con las configuraciones de NGINX:

  1. Un servidor NGINX implementado y configurado en Linux
  2. Una comprensión básica de NGINX y sus archivos de configuración

Si cumple con estos requisitos, está listo para ajustar NGINX para un rendimiento óptimo. Veamos cómo hacerlo.

1. Configurar procesos de trabajo en NGINX

La arquitectura NGINX consta de un proceso maestro y varios procesos de trabajo. El trabajo del proceso maestro es evaluar la configuración y administrar los trabajadores. Por otro lado, el rol de un proceso de trabajo es manejar las solicitudes entrantes y crear una conexión entre el cliente y el servidor.

El valor del proceso se establece en auto por defecto. Esto establece la cantidad de procesos de trabajo igual a la cantidad de núcleos de CPU disponibles. Para saber cuántos núcleos de CPU hay en su sistema, ejecute el siguiente comando:

procesador grep /proc/cpuinfo | wc-l

Si desea aumentar la cantidad de procesos de trabajo, debe configurar esto en el archivo de configuración de NGINX.

Abra el archivo con nano:

nano etc/nginx/nginx.conf

Para configurar más procesos de trabajo, cambie el valor predeterminado al número máximo de núcleos de CPU disponibles en su sistema.

2. Configurar conexiones de trabajadores

Otro parámetro que puede modificar para mejorar el rendimiento de NGINX son las conexiones de trabajadores. Este es el número máximo de conexiones TCP que cada proceso de trabajo puede manejar simultáneamente.

La mayoría de los sistemas tienen un valor predeterminado de 512 conexiones, pero muchos sistemas modernos también admiten un número mayor. Puede verificar cuántas conexiones admite su sistema con:

ulimit -norte

La salida será el número máximo de conexiones admitidas. A continuación, puede modificar la conexiones_trabajadores variable en el archivo de configuración de NGINX para mejorar el rendimiento.

3. Permitir compresión GZIP en NGINX

NGINX utiliza GZIP para la compresión y descompresión de archivos. Si está habilitado en el archivo de configuración de NGINX, puede ahorrar ancho de banda y mejorar el tiempo de carga del sitio web cuando la conexión es lenta.

Para permitir la compresión GZIP, agregue las siguientes líneas en el archivo de configuración de NGINX:

servidor {
gzip activado;
gzip_vary activado;
gzip_min_longitud 10240;
gzip_proxied expiró no-cacheNo-almacenarprivado autenticación;
gzip_types texto/texto sin formato/texto css/texto xml/aplicación javascript/aplicación x-javascript/xml;
gzip_disable "MSIE [1-6]\".;
}

4. Valor límite de tiempo de espera en NGINX

Los valores de tiempo de espera reducidos también juegan un papel importante en la mejora del rendimiento de NGINX. El mantener viva Las conexiones reducen la sobrecarga del procesador y de la red al abrir y cerrar conexiones.

Puede modificar los siguientes parámetros en el archivo de configuración para limitar los tiempos de espera:

http
{
cliente_cuerpo_tiempo de espera 12;
cliente_cabezal_tiempo de espera 12;
keepalive_timeout 15;
enviar_tiempo de espera 10;
}

5. Ajustar el tamaño del búfer

También puede ajustar los búferes de NGINX para optimizar el rendimiento del servidor. Si el tamaño del búfer es demasiado bajo, NGINX escribirá en un archivo temporal que hace que las operaciones de E/S se ejecuten constantemente.

Debe configurar los siguientes parámetros de búfer para que NGINX funcione de la mejor manera:

http
{
cliente_cuerpo_buffer_tamaño 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}

6. Deshabilitar registros de acceso o habilitar almacenamiento en búfer de registros de acceso

Los registros consumen una gran cantidad de espacio en disco y ciclos de CPU/IO que pueden afectar el rendimiento del servidor si registra cada solicitud.

Puede deshabilitar los registros de acceso, lo que ahorrará algo de espacio en disco y procesamiento de la CPU. Para deshabilitar los registros de acceso, agregue la siguiente línea al archivo de configuración de NGINX:

acceso_cerrar sesión;

Los registros son importantes ya que ayudan a solucionar un problema. Deshabilitar completamente los registros no es una buena práctica. En este caso, puede habilitar el almacenamiento en búfer de los registros de acceso. Esto permitirá a NGINX almacenar en búfer una serie de registros y escribirlos juntos en el archivo de registro a la vez en lugar de aplicar diferentes operaciones de registro en cada solicitud.

Agregue la siguiente línea en el archivo de configuración de NGINX para permitir el almacenamiento en búfer de registros de acceso:

acceso_log/var/log/nginx/access.logprincipalbúfer = 16k

7. Ajustar el período de almacenamiento en caché de contenido estático en NGINX

El contenido del sitio web que permanece igual en todas las páginas se conoce como contenido estático. El almacenamiento en caché de este contenido permite colocarlo en ubicaciones de fácil acceso. Este mecanismo reduce el uso de ancho de banda, permite una accesibilidad rápida y, posteriormente, mejora el rendimiento del sitio web.

Cuando un cliente solicita contenido estático, el servidor entregará una versión en caché del contenido. Agregue las siguientes líneas en el archivo de host virtual ubicado en el /etc/nginx/sites-available directorio:

ubicación ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expira 90d;
}

Esta configuración almacenará en caché los archivos durante 90 días desde la última vez que se accedió al navegador.

8. Habilitar caché de archivo abierto en NGINX

También puede usar parámetros de caché de archivos abiertos en el archivo de configuración de NGINX para mejorar su rendimiento. Esta directiva permite que el descriptor de archivo y los archivos visitados con frecuencia se almacenen en caché en el servidor.

Agregue las siguientes líneas en el http en el archivo de configuración para habilitar la caché de archivos abiertos:

http {
open_file_cache max=1024 inactivo=10s;
abrir_archivo_caché_válido 60s;
abrir_archivo_caché_min_usos 2;
open_file_cache_errors en;
}

Obtenga lo mejor de NGINX modificando sus archivos de configuración

Una buena práctica a seguir al cambiar configuraciones es tratar con una configuración a la vez y probarla. Si funciona, pase a la siguiente configuración. De lo contrario, siempre puede volver a cambiar la configuración al valor predeterminado.

Al modificar los parámetros configurados en los archivos de configuración de NGINX, como nginx.conf y archivos de host virtual, puede piratear NGINX para obtener el mejor rendimiento.