Hosting PERU 18 Años
(01) 433-3745

9 8180 8180

Instalar Apache y Nginx en AlmaLinux

Indice

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.

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