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 -

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:

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
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
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
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

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