Sobes.tech
Intern

¿Ha trabajado con Apache HTTP Server?

sobes.tech AI

Respuesta de la IA

Sí, he trabajado. Tengo experiencia en la configuración, optimización y soporte de Apache HTTP Server en diversas infraestructuras.

Áreas principales de trabajo:

  • Instalación y configuración básica:
    • Compilación desde código fuente e instalación desde paquetes (apt, yum).
    • Edición del archivo de configuración principal httpd.conf (o apache2.conf).
    • Configuración de puertos de escucha (Listen).
  • Hosts virtuales (Virtual Hosts):
    • Creación y configuración de hosts virtuales para alojar varios sitios en un mismo servidor.
    • Configuración basada en nombre (Name-based Virtual Hosts) y en IP (IP-based Virtual Hosts).
    • Uso de directivas ServerName, ServerAlias, DocumentRoot.
  • Módulos de Apache (Modules):
    • Activación y desactivación de módulos (por ejemplo, mod_rewrite, mod_ssl, mod_proxy).
    • Configuración de módulos específicos, como reglas de reescritura de URL (mod_rewrite).
    • Trabajo con MPM (Multi-Processing Modules) — prefork, worker, event.
  • Seguridad:
    • Configuración de SSL/TLS usando mod_ssl y Let's Encrypt u otros certificados.
    • Restricción de acceso por IP (Order, Deny, Allow).
    • Configuración de autenticación (Basic, Digest) usando .htaccess o archivos de configuración.
    • Protección contra ataques comunes (por ejemplo, DDoS, SQL Injection - en conjunto con WAF).
  • Rendimiento y escalabilidad:
    • Optimización de configuraciones MPM (MaxRequestWorkers, StartServers, MinSpareServers, MaxSpareServers).
    • Uso de caché (mod_cache, mod_disk_cache).
    • Integración con FastCGI (PHP-FPM) y proxy de solicitudes (mod_proxy, mod_proxy_http, mod_proxy_fcgi).
    • Configuración de compresión (mod_deflate).
  • Registro y monitoreo:
    • Configuración de formatos de logs de acceso (LogFormat, CustomLog).
    • Análisis de logs de errores (ErrorLog).
    • Integración con sistemas de monitoreo (por ejemplo, Prometheus Exporter, plugins de Nagios).
    • Uso de mod_status para monitorear el estado del servidor y las solicitudes.
  • Automatización y despliegue:
    • Creación de playbooks de Ansible para instalar y configurar Apache.
    • Uso de contenedores Docker con Apache.

Ejemplo de configuración de un host virtual:

# Ejemplo de configuración de un host virtual
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/example.com/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    # Redirección a HTTPS
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

    <Directory /var/www/example.com/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/example.com.crt
    SSLCertificateKeyFile /etc/ssl/private/example.com.key
    SSLCertificateChainFile /etc/ssl/certs/example.com.ca-bundle # Si existe

    # Configuraciones de seguridad SSL recomendadas
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA
    SSLHonorCipherOrder on
    SSLSessionTickets off
    SSLCompression off

</VirtualHost>

También hay experiencia comparativa con Nginx, lo que permite elegir la solución óptima para cada tarea o integrarlas (por ejemplo, Apache como backend detrás de Nginx).