Apache es uno de los servidores web más populares y potentes. Y por supuesto, es de código abierto. También se conoce como servidor httpd . Los servidores web Apache están diseñados para proporcionar un equilibrio de portabilidad, flexibilidad y alto rendimiento. La optimización de Apache desempeña un papel crucial en la determinación del rendimiento general del sistema. Apache es fácil de configurar y proporciona opciones simples de ajuste de rendimiento, que analizaremos en detalle hoy.

REQUISITOS PREVIOS -

  • Un servidor CentOS 7 en vivo.
  • Servidor web Apache instalado y en ejecución.
Primero, permítanos guiarlo por el proceso de instalación de Apache, en caso de que aún no lo haya hecho. Para instalar Apache, use el comando -  sudo yum install httpd como se muestra a continuación -
instalación
La instalación llevará algún tiempo. Después de la instalación, podrá ver un mensaje en la consola como se muestra a continuación:
instalación completa
El archivo de configuración principal ( httpd.conf ) se puede ver en la ubicación / etc / httpd / conf.
El archivo httpd.conf contiene algunos parámetros por defecto. También puede agregar sus propios parámetros en función de sus necesidades. Comencemos ahora con algunas optimizaciones de rendimiento.

MANTENER CON VIDA EL TIEMPO DE ESPERA-

KeepAliveTimeout es un parámetro que define el número de segundos antes de cerrar una conexión. Este es el máximo de segundos que Apache esperará una nueva solicitud antes de cerrar la conexión. De forma predeterminada, este parámetro está deshabilitado en CentOS 7. Sin embargo, generalmente es una buena práctica tener un valor KeepAliveTimeout.
Este parámetro se puede establecer en un valor muy bajo, entre 1 y 5. Para realizar este cambio, puede editar el archivo httpd.conf en la ubicación-  / etc / httpd / conf
Puedes agregar la siguiente línea: 
KeepAliveTimeout 5

SOLICITUDES MAX KEEP-ALIVE-

MaxKeepAliveRequests es el número máximo de solicitudes que se pueden atender en una conexión TCP. Esto le permitirá limitar el número de conexiones permitidas y ayudará a utilizar el ancho de banda de la red de manera efectiva, sin causar congestión de tráfico. Este es un valor numérico que cuando se establece en 0, permitirá solicitudes ilimitadas.
El valor recomendado aquí es 500. Para agregar este parámetro, tendrá que editar el archivo httpd.conf
Puede agregar la siguiente línea: 
MaxKeepAliveRequests 500

MANTENER VIVA-

KeepAlive es un parámetro que determina si se permite o no más de una solicitud por conexión. Esto ayuda a garantizar que un cliente no consuma todos los recursos del servidor. De forma predeterminada, este parámetro está deshabilitado en CentOS 7. Si espera que Apache reciba varias solicitudes de diferentes direcciones IP a la vez, debe activarse. Esto se puede editar en el archivo httpd.conf .
Para activar este parámetro, puede agregar la siguiente línea: 
KeepAlive On

CONFIGURAR MULTIPROCESAMIENTO MÓDULO-

Una de las razones para un rendimiento lento en Apache puede ser su incapacidad para lidiar con la carga. En tales casos, un módulo de multiprocesamiento ayudará.
mpm_prefork_module es parte de CentOS 7 y está habilitado de forma predeterminada. Para confirmar que esto se está ejecutando, puede usar el comando  sudo apachectl -t -D DUMP_MODULES | grep mpm
módulo de multiprocesamiento
Si mod_deflate  está habilitado, mostrará  mpm_prefork_module (compartido)
Para un mejor rendimiento, también puede utilizar el módulo de prefork Apache MPM. Esto se puede establecer en el archivo httpd.conf .
Puede agregar las siguientes líneas en el archivo: 
<IfModule prefork.c> 
    StartServers 5 
    MinSpareServers 5 
    MaxSpareServers 10 
    MaxClients 150 
    MaxRequestsPerChild 3000 
</IfModule>
Una vez que se guarda el archivo, puede reiniciar Apache usando el comando-  sudo apachectl restart.
Aquí hay una breve explicación de los parámetros mencionados-
  • Servidores de inicio : esto establece la cantidad de procesos de servidor secundarios creados al inicio. Inicialmente, esto se puede mantener como un número pequeño y se puede aumentar gradualmente en un servidor de carga útil alta. Esto ayuda a garantizar la correcta utilización de los recursos del servidor.
  • MinSpareServers : establece el número mínimo de procesos inactivos del servidor secundario y puede ajustarse para servidores de alta carga útil.
  • MaxSpareServers : establece el número máximo de procesos inactivos del servidor secundario. En caso de que la cantidad de procesos del servidor hijo inactivo exceda este valor, se eliminan los procesos inactivos.
  • MaxClients : este es el número máximo de solicitudes simultáneas que Apache puede manejar. Una vez que se alcanza este límite, la conexión se pondrá en cola.
  • MaxRequestsPerChild : esto indica cuántas solicitudes manejará un proceso secundario antes de terminar. Una vez alcanzado este límite, el proceso hijo morirá. Si este valor se establece en 0, el proceso nunca morirá.

PERMITIR SOBRESCRITURA-

El parámetro  AllowOverride  se puede establecer en 'Todos'. Sin embargo, si esto se incluye dentro de una etiqueta de directorio simple, abrirá un  archivo .htaccess para cada directorio que visite. Así que si tiene la siguiente configuración: 
DocumentRoot / var / www / html / example 
<Directory /> 
     AllowOverride All 
</Directory>
Lo que sucederá es que si realiza una solicitud al URL /index.html, Apache abrirá un  archivo .htaccess para /, / var /, / var / www /, / var / www / html /, / var / www / html / example
Para evitar este desperdicio, puede configurar  AllowOverride  para un directorio específico, como:
DocumentRoot / var / www / html / example 
<Directory / var / www / html / example / admin> 
     AllowOverride All 
</Directory>

LOOKUPS DNS

Otro factor que puede ralentizar a Apache es el tiempo requerido para realizar búsquedas de DNS. Apache registra el nombre de host completo de cada solicitud entrante en el archivo access.log. Resolver cada uno de estos puede llevar mucho tiempo.
Esto se configura con el parámetro-  HostnameLookups en el  archivo httpd.conf . Esto habilita las búsquedas de DNS para que los nombres de host se puedan registrar en lugar de la dirección IP. En Apache, por defecto, este parámetro está desactivado. Esta propiedad se define en el archivo httpd.conf como-
HostnameLookups Off
Una vez que haya terminado de hacer todos los cambios anteriores, reinicie Apache usando el comando -  sudo apachectl restart

Este post no es mio , pero me pareció interesante . Créditos : https://blog.vpscheap.net/how-to-optimize-apache-performance-on-centos-7/