Por que optimizar el servidor web

Apache y Nginx son los servidores web mas utilizados en entornos Linux. La configuracion predeterminada de ambos esta diseñada para funcionar en una amplia variedad de escenarios, pero no necesariamente optimizada para el caso de uso especifico del servidor. Ajustar la configuracion segun los recursos disponibles (RAM, CPU, tipo de trafico) puede reducir significativamente el tiempo de respuesta, aumentar la capacidad de conexiones simultaneas y estabilizar el servidor bajo carga alta.

Optimizacion de Apache

El archivo de configuracion principal de Apache se encuentra en /etc/apache2/apache2.conf (Ubuntu) o /etc/httpd/conf/httpd.conf (CentOS/AlmaLinux).

Elegir el MPM correcto

Apache tiene tres modulos de multiprocesamiento (MPM) principales:

MPM Mejor para Uso de memoria
prefork Compatibilidad con PHP sin FPM (mod_php) Alto
worker Trafico alto con bajo uso de PHP Medio
event Trafico alto con PHP-FPM (recomendado) Bajo

Configuracion recomendada para MPM Event con PHP-FPM

    StartServers         2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxRequestWorkers    150
    MaxConnectionsPerChild 0

Optimizacion de Nginx

Nginx es conocido por su eficiencia en el manejo de conexiones concurrentes con bajo uso de recursos. El archivo de configuracion principal esta en /etc/nginx/nginx.conf.

worker_processes auto;  # Un worker por nucleo de CPU
worker_connections 1024;  # Conexiones por worker

keepalive_timeout 65;
client_max_body_size 64m;  # Tamaño maximo de subida

# Compresion gzip
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_comp_level 6;

Activar el cache de paginas estaticas en Nginx

# En el bloque location
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2)$ {
    expires 1y;
    add_header Cache-Control "public, no-transform";
}

Verificar la configuracion antes de reiniciar

# Verificar sintaxis de Apache
apachectl configtest

# Verificar sintaxis de Nginx
nginx -t

# Aplicar cambios
systemctl reload apache2
systemctl reload nginx
Was this answer helpful? 0 Users Found This Useful (0 Votes)