Generalidades
Apache es el servidor HTTP más utilizado en Internet y DreamHost lo utiliza como servidor HTTP predeterminado para todos los productos de alojamiento.
Estas instrucciones asumen que has lanzado una instancia que ejecuta Debian o Ubuntu. Consulta el siguiente artículo para obtener instrucciones sobre cómo iniciar una instancia:
Iniciar sesión en tu instancia como usuario por defecto
Inicia sesión en tu nueva instancia usando las Llaves de SSH que has asignaste cuando se creó.
Los siguientes comandos requieren privilegios sudo los cuales están asignados al usuario predeterminado de la instancia automáticamente.
Instalar Apache
Corre los siguientes comandos:
[user@instance]:$ sudo apt-get update [user@instance]:$ sudo apt-get install -y apache2
Cuando se completa, el servidor HTTP Apache está instalado y se ejecuta con su configuración predeterminada. Si visitas la dirección IP pública de tu instancia en tu buscador, verás la página por defecto de Apache.

El directorio /etc/apache2
Este directorio contiene todos los archivos de configuración de tu servidor Apache. Si editas cualquiera de los archivos encontrarás que muchos incluyen detalles del propósito general en la parte superior.
Archivo /etc/apache2/apache2.conf
Este es el archivo de configuración principal que finalmente controla cómo funciona Apache. Si bien es posible configurar completamente tus sitios y módulos directamente en este archivo, en su lugar se recomienda usar archivos individuales más pequeños para cada uno de tus sitios y módulos para simplificar. Ve el artículo "Agregar un sitio web a DreamCompute" para obtener más instrucciones sobre cómo agregar archivos de configuración del sitio en el directorio/etc/apache2/sites-available.
Esto es posible gracias a la directiva Include para insertar otros archivos en apache2.conf en tiempo de ejecución. Algunos de los valores de interés aquí son:
Timeout
- Tiempo en segundos que Apache intenta completar una solicitud. Predeterminado: 300
KeepAlive
- Define si se permiten conexiones persistentes, lo que permite más de una solicitud por conexión. Predeterminado: Activado
MaxKeepAliveRequests
- Define el número máximo de solicitudes permitidas para cada conexión persistente KeepAlive. Predeterminado: 100
KeepAliveTimeout
- Define la cantidad de segundos para esperar otra solicitud antes de finalizar la conexión persistente KeepAlive. Por defecto: 5
Configuración MPM
Debian y Ubuntu tienen diferentes paquetes de Apache que están optimizados para diferentes situaciones. Cada paquete es un tipo diferente de MPM (módulo de procesamiento múltiple) y las configuraciones para cada uno se definen cerca del final de este archivo.
Los paquetes disponibles son:
- mpm-event
- mpm-prefork
- mpm-worker
Comprueba qué configuración de MPM está habilitada
Corre el siguiente comando:
[user@instance]:$ apache2ctl -M | grep mpm mpm_event_module (shared)
Esto muestra que el módulo de eventos está habilitado. Si lo deseas, puedes cambiar eso a mpm-prefork con los siguientes comandos.
[user@instance]:$ sudo a2dismod mpm_event [user@instance]:$ sudo a2enmod mpm_prefork [user@instance]:$ sudo service apache2 restart
Hosts Virtuales
Los hosts virtuales definen cada sitio para que Apache sepa qué debe hacer cuando recibe una solicitud. Puedes ver todos los archivos de configuración del host virtual en el directorio /etc/apache2/sites-available.
/etc/apache2/sites-available/000-default.conf
El directorio /etc/apache2-sites-available contiene un archivo de configuración predeterminada titulado 000-default.conf. Estos archivos de configuración son responsables de lo siguiente:
- Definir que debe hacer Apache cuando tiene una solicitud que no coincide con otos hosts virtuales.
- Si solo esperas tener un sitio en tu instancia de DreamCompute, puedes usar este archivo y ningún otro si lo prefieres.
- Para aquellos con varios sitios, esto se puede utilizar para indicar al visitante que puede haber hecho algo mal o redirigirlo a otro sitio.
/etc/apache2/sites-available/example.com.conf
Cualquier sitio agregado a tu instancia de DreamCompute tendría su propio archivo de configuración creado. Si tu sitio era example.com, el archivo de configuración se titularía example.com.conf.
- Para cada sitio que desees configurar, se recomienda que nombre un archivo similar al nombre de tu sitio en el directorio /etc/apache2/sites-available/.
- Hay muchos ejemplos de hosts virtuales disponibles en la wiki de Apache página de Hosts de ejemplo. A continuación se muestra uno básico para escuchar en el puerto 80 (http) con registro personalizado:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/www.example.com CustomLog /var/log/apache/www.example.com-access.log combined ErrorLog /var/log/apache/www.example.com-error.log </VirtualHost>
Alternativamente, si deseas especificar la IP en lugar de * puedes usar el siguiente comando reemplazando 1.1.1.1 con tu dirección IP real:
<VirtualHost 1.1.1.1:80>
Agregar el código de tu sitio
Ahora que se creó el archivo de configuración, debes agregar el código de tu sitio a la instancia. Lo agregarás en el siguiente directorio:
/var/www/example.com/index.html
Administrar archivos de Virtual Host
Cuando hayas configurado el archivo de host virtual de tu sitio, puedes habilitarlo/deshabilitarlo ingresando los siguientes comandos:
sudo a2ensite — Proporciona una lista de archivos de sitios que puedes habilitar.[user@instance]:$ sudo a2ensite
[user@instance]:$ sudo a2dissite
[user@instance]:$ sudo service apache2 reload
Este comando crea un enlace simbólico en los archivos de tu sitio desde /etc/apache2/sites-enabled a su archivo correspondiente en /etc/apache2/sites-available.
Módulos
Los módulos pueden ser habilitados o deshabilitados por los siguientes comandos:
[user@instance]:$ sudo a2enmod <module-name> [user@instance]:$ sudo a2dismod <module-name>
Si no especificas un nombre de módulo, el comando muestra una lista de módulos disponibles para habilitar o deshabilitar.
Luego de habilitar o deshabilitar un sitio, recarga Apache para hacer un cambio en vivo usando el siguiente comando:
[user@instance]:$ sudo service apache2 reload