Instalar Apache y Nginx en AlmaLinux
Aprende a instalar Apache o Nginx en AlmaLinux para servir tus aplicaciones web. En esta guía completa cubrimos la instalación, configuración de virtual hosts, certificados SSL con Let’s Encrypt y optimización para mejor rendimiento.
Ambos servidores web son excelentes opciones para tu servidor VPS. Te ayudamos a elegir el más adecuado para tu proyecto y configurarlo correctamente.
Contenido
1. Apache vs Nginx: ¿Cuál Elegir?
Antes de instalar, es importante entender las diferencias entre ambos:
| Característica | Apache | Nginx |
|---|---|---|
| Arquitectura | Procesos/hilos por conexión | Asíncrono, orientado a eventos |
| Contenido estático | Bueno | Excelente |
| .htaccess | Sí (configurable por directorio) | No (configuración centralizada) |
| Consumo de memoria | Mayor | Menor |
| Conexiones simultáneas | Limitado por recursos | Excelente manejo |
| PHP | mod_php (integrado) | PHP-FPM (separado) |
| Ideal para | WordPress, hosting compartido | Alto tráfico, proxy reverso |
Recomendación: Si usas WordPress o necesitas .htaccess, elige Apache. Para alto tráfico y contenido estático, elige Nginx. También puedes usar Nginx como proxy reverso delante de Apache.
2. Instalar Apache (httpd)
Instalación básica
# Actualizar sistema
sudo dnf update -y
# Instalar Apache
sudo dnf install httpd -y
# Iniciar y habilitar al arranque
sudo systemctl enable --now httpd
# Verificar estado
sudo systemctl status httpd
Configurar firewall
# Abrir puertos HTTP y HTTPS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# Verificar reglas
sudo firewall-cmd --list-all
Verificar instalación
# Ver versión
httpd -v
# Probar configuración
sudo apachectl configtest
# Acceder desde navegador
# http://tu-ip-servidor
Archivos importantes de Apache
# Configuración principal
/etc/httpd/conf/httpd.conf
# Configuraciones adicionales
/etc/httpd/conf.d/
# Directorio web por defecto
/var/www/html/
# Logs
/var/log/httpd/access_log
/var/log/httpd/error_log
3. Instalar Nginx
Instalación desde repositorio oficial
# Crear archivo de repositorio nginx
sudo nano /etc/yum.repos.d/nginx.repo
# Agregar contenido:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# Instalar Nginx
sudo dnf install nginx -y
# Iniciar y habilitar
sudo systemctl enable --now nginx
# Verificar estado
sudo systemctl status nginx
O instalar desde AppStream (más simple)
# Instalación rápida desde repositorios de AlmaLinux
sudo dnf install nginx -y
sudo systemctl enable --now nginx
Configurar firewall
# Abrir puertos
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Archivos importantes de Nginx
# Configuración principal
/etc/nginx/nginx.conf
# Configuraciones de sitios
/etc/nginx/conf.d/
# Directorio web por defecto
/usr/share/nginx/html/
# Logs
/var/log/nginx/access.log
/var/log/nginx/error.log
4. Configurar Virtual Hosts
Virtual Host en Apache
# Crear archivo de configuración
sudo nano /etc/httpd/conf.d/mi-sitio.conf
<VirtualHost *:80>
ServerName mi-sitio.com
ServerAlias www.mi-sitio.com
DocumentRoot /var/www/mi-sitio/public_html
<Directory /var/www/mi-sitio/public_html>
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/mi-sitio-error.log
CustomLog /var/log/httpd/mi-sitio-access.log combined
</VirtualHost>
# Crear directorio del sitio
sudo mkdir -p /var/www/mi-sitio/public_html
# Establecer permisos
sudo chown -R $USER:$USER /var/www/mi-sitio/
sudo chmod -R 755 /var/www/mi-sitio/
# Crear página de prueba
echo "<h1>Bienvenido a mi-sitio.com</h1>" | sudo tee /var/www/mi-sitio/public_html/index.html
# Verificar configuración
sudo apachectl configtest
# Reiniciar Apache
sudo systemctl restart httpd
Server Block en Nginx
# Crear archivo de configuración
sudo nano /etc/nginx/conf.d/mi-sitio.conf
server {
listen 80;
server_name mi-sitio.com www.mi-sitio.com;
root /var/www/mi-sitio/public_html;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
access_log /var/log/nginx/mi-sitio-access.log;
error_log /var/log/nginx/mi-sitio-error.log;
}
# Verificar configuración
sudo nginx -t
# Recargar Nginx
sudo systemctl reload nginx
5. SSL con Let’s Encrypt
Instalar Certbot
# Instalar EPEL y Certbot
sudo dnf install epel-release -y
sudo dnf install certbot -y
# Para Apache
sudo dnf install python3-certbot-apache -y
# Para Nginx
sudo dnf install python3-certbot-nginx -y
Obtener certificado SSL para Apache
# Obtener e instalar certificado
sudo certbot --apache -d mi-sitio.com -d www.mi-sitio.com
# Seguir las instrucciones interactivas
Obtener certificado SSL para Nginx
# Obtener e instalar certificado
sudo certbot --nginx -d mi-sitio.com -d www.mi-sitio.com
# Seguir las instrucciones interactivas
Renovación automática
# Probar renovación
sudo certbot renew --dry-run
# Ver timer de renovación automática
sudo systemctl status certbot-renew.timer
# Renovación manual si es necesario
sudo certbot renew
6. Optimización de Rendimiento
Optimización de Apache
# Editar configuración
sudo nano /etc/httpd/conf/httpd.conf
# Ajustes recomendados:
# KeepAlive On
# MaxKeepAliveRequests 100
# KeepAliveTimeout 5
# Habilitar compresión
sudo nano /etc/httpd/conf.d/compression.conf
# Compresión gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilterByType DEFLATE text/css text/javascript application/javascript
AddOutputFilterByType DEFLATE application/json application/xml
</IfModule>
Optimización de Nginx
# Editar configuración principal
sudo nano /etc/nginx/nginx.conf
# En el bloque http {}
worker_processes auto;
worker_connections 1024;
# Compresión gzip
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_min_length 256;
# Caché de archivos estáticos
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
# Verificar y aplicar cambios
sudo nginx -t
sudo systemctl reload nginx
Preguntas Frecuentes
¿Apache o Nginx, cuál elegir?
Depende de tu caso de uso. Apache es ideal para WordPress y sitios que necesitan .htaccess para reglas de reescritura. Nginx es mejor para alto tráfico, servir archivos estáticos y como proxy reverso. Muchos sitios usan Nginx como proxy delante de Apache para combinar lo mejor de ambos.
¿Cómo configurar virtual host en Apache?
Crea un archivo en /etc/httpd/conf.d/ con extensión .conf. Define ServerName, DocumentRoot y Directory con los permisos adecuados. Luego ejecuta sudo apachectl configtest para verificar y sudo systemctl restart httpd para aplicar cambios.
¿Cómo instalar SSL gratis con Let’s Encrypt?
Instala Certbot con sudo dnf install certbot python3-certbot-nginx (o python3-certbot-apache). Luego ejecuta sudo certbot --nginx -d tu-dominio.com. Certbot configurará automáticamente SSL y la renovación automática cada 90 días.
¿Necesitas un VPS con AlmaLinux?
Nuestros servidores VPS vienen con AlmaLinux preinstalado y soporte técnico en español 24/7.
Ver Planes VPS¿Necesitas un VPS con AlmaLinux?
Nuestros servidores VPS vienen con AlmaLinux preinstalado y soporte técnico en español 24/7.
Ver Planes VPS







