El tuning de Apache y Nginx en un VPS consiste en ajustar los parámetros del servidor web para sacar el máximo provecho de la RAM, CPU y conexiones disponibles. Sin estos ajustes, incluso un VPS de gama alta puede comportarse de forma lenta o inestable bajo carga.
Esta guía cubre los cambios más impactantes que puedes hacer hoy, sin necesidad de hardware adicional.
Por qué el tuning importa en un VPS
A diferencia de un servidor dedicado con recursos ilimitados, un VPS tiene RAM y CPU acotadas. Los valores predeterminados de Apache y Nginx están pensados para funcionar en cualquier entorno, no para rendir al máximo en el tuyo.
Un servidor sin tuning suele presentar:
- Tiempos de respuesta elevados bajo tráfico moderado.
- Procesos hijo que consumen RAM innecesariamente.
- Conexiones que se cierran antes de que el cliente reciba todos los datos.
- Sin caché de archivos estáticos, lo que obliga a leer disco en cada petición.
Consulta la guía de servidores VPS para entender primero qué recursos tiene disponible tu instancia antes de ajustar cualquier parámetro.
Tuning de Apache: los ajustes clave
Apache utiliza el módulo MPM (Multi-Processing Module) para gestionar conexiones. El MPM más común en VPS Linux es event o worker; evita prefork si usas PHP-FPM.
Configuración del MPM Event
Edita /etc/httpd/conf.modules.d/00-mpm.conf (CentOS/RHEL) o /etc/apache2/mods-enabled/mpm_event.conf (Debian/Ubuntu):
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 1000
</IfModule>
Regla práctica: MaxRequestWorkers no debe exceder (RAM disponible en MB) / (RAM media por proceso). Para un VPS de 2 GB con procesos de ~20 MB, el techo razonable es 80-100.
Keep-Alive y timeouts
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Un KeepAliveTimeout alto mantiene sockets abiertos sin motivo. Con 5 segundos es suficiente para la mayoría de los sitios.
Compresión y caché de archivos estáticos
# mod_deflate — habilita compresión gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
# mod_expires — cabeceras de caché
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpeg "access plus 30 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
</IfModule>
Tuning de Nginx: los ajustes clave
Nginx es asíncrono y orientado a eventos, lo que lo hace naturalmente más eficiente en conexiones concurrentes. Aun así, los valores por defecto dejan rendimiento sobre la mesa.
Worker processes y conexiones
worker_processes auto; # uno por núcleo de CPU
worker_connections 1024; # conexiones por worker
events {
use epoll;
multi_accept on;
}
worker_processes auto detecta los núcleos disponibles. multi_accept on permite que cada worker acepte varias conexiones en un solo ciclo.
Buffers y timeouts HTTP
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 15;
keepalive_requests 100;
client_body_buffer_size 128k;
client_max_body_size 10m;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
output_buffers 1 32k;
postpone_output 1460;
}
Ajusta client_max_body_size según si tu sitio acepta subidas de archivos.
Caché de archivos abiertos
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
Esta directiva reduce las llamadas al sistema de archivos al mantener en memoria los descriptores de los archivos más accedidos.
Gzip en Nginx
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_comp_level 4 ofrece una buena relación entre compresión y uso de CPU. Niveles más altos apenas reducen el tamaño pero consumen más procesador.
Comparativa rápida: valores por defecto vs. ajustados
| Parámetro | Apache (defecto) | Apache (tuning VPS 2 GB) | Nginx (defecto) | Nginx (tuning VPS 2 GB) |
|---|---|---|---|---|
| Procesos/workers | MaxClients 150 | MaxRequestWorkers 80 | worker_processes 1 | worker_processes auto |
| KeepAlive timeout | 15 s | 5 s | 75 s | 15 s |
| Gzip | Desactivado | Activado | Desactivado | Activado, nivel 4 |
| Caché de archivos | No | mod_expires | No | open_file_cache |
Conclusiones clave
- Ajusta MaxRequestWorkers (Apache) o worker_connections (Nginx) según la RAM real de tu VPS.
- Reduce el KeepAliveTimeout a 5-15 segundos para liberar sockets más rápido.
- Activa gzip con nivel de compresión 4; reduce el tráfico transferido hasta un 70 % en HTML/CSS/JS.
- Usa mod_expires en Apache u open_file_cache en Nginx para aliviar el disco en archivos estáticos.
- Monitorea el consumo de RAM y CPU tras cada cambio; no apliques valores de servidores con 16 GB a un VPS de 1 GB.
¿Quieres ayuda para afinar la configuración de tu servidor o evaluar si tu VPS actual soporta tu tráfico? Consulta a los especialistas de elenlace.com y obtén una revisión gratuita de tu infraestructura.
Preguntas frecuentes
¿Apache o Nginx: cuál es más rápido en un VPS?
Nginx es más eficiente en conexiones concurrentes y consumo de RAM gracias a su arquitectura asíncrona. Sin embargo, Apache con MPM Event y PHP-FPM se acerca mucho. La diferencia práctica depende más del tuning que del servidor elegido.
¿Con qué frecuencia debo revisar estos ajustes?
Revísalos cada vez que cambies el plan de VPS, lances un nuevo sitio de alto tráfico o detectes picos de latencia. Un repaso trimestral es una buena práctica de mantenimiento.
¿Puedo aplicar estos cambios en producción sin reiniciar el servidor?
Sí, tanto Apache (apachectl graceful) como Nginx (nginx -s reload) recargan la configuración sin interrumpir las conexiones activas. Prueba siempre la sintaxis antes: apachectl configtest o nginx -t.
¿El tuning sustituye a una CDN?
No, son complementarios. El tuning optimiza el servidor de origen; una CDN descarga tráfico de archivos estáticos hacia edge nodes cercanos al usuario. Lo ideal es aplicar ambos.
¿Prefieres que lo hagamos por ti? En El Enlace resolvemos hosting y desarrollo web profesional.
Para saber más
Otros proveedores y guías que vale la pena comparar: