Apache Httpd, Apache2, o simplemente Apache como se le suele llamar, es un software de código abierto que le permite a sus usuarios servir contenido en la web. Para utilizar este servidor web, una vez instalado, ya esta listo para ser usado con configuraciones por defecto, pero puede ser configurado como uno lo desee a través de archivos de configuración.
Por defecto, Apache toma sus configuraciones desde el archivo httpd.conf (o apache2.conf en distribuciones Debian). En este archivo principal se encuentran las directivas del apache.
En este articulo se listaran brevemente algunas de las directivas mas comunes que se encontraran o que puedan ser de utilidad en estos archivos.
ServerRoot
Especifica el directorio de máximo nivel del servidor web. Es el directorio donde se guardan todos los archivos relacionados con el servidor, incluyendo binarios, configuraciones, el contenido que va a estar disponible online, entre otros.
Conviene modificarlo solo si se mueve manualmente el directorio donde se instalo la aplicación, debido a que al instalar Apache se copian los binarios en la ruta por defecto %ServerRoot%/bin
, los archivos de configuración se buscan en %ServerRoot%/conf
, etc. Al mover la carpeta entonces, se empezarían a buscar archivos a ubicaciones inexistentes.
PidFile
Fija la ruta al archivo que contiene el id del proceso principal de Apache. Es útil para, por ejemplo, matar el proceso.
Por defecto es %ServerRoot%/logs/http.pid
Para Debian la ruta es /var/run/apache2/apache2.pid
<IfModule modulo>
Se usan para ejecutar o no las directivas dentro de estas etiquetas basándose en la presencia del modulo que se escriba en la etiqueta.
Timeout
Para declarar cuanto tiempo se puede esperar como máximo para cerrar la conexión al no recibirse ni enviarse ninguna petición dentro de esta.
KeepAlive
Booleano para definir que las conexiones sean persistentes. O sea, para enviarse más de una petición en una sola conexión con un mismo handshake.
KeepAliveTimeout
Tiempo de espera a una petición dentro de una conexión persistente.
MaxKeepAliveRequests
Cantidad de peticiones que se pueden realizar en una conexión persistente.
Listen
Con esta directiva se especifican que puertos se van a usar para atender las peticiones.
Ejemplo para escuchar 2 puertos distintos:
Listen 80
Listen 8081
MaxClients
Cantidad máxima de clientes conectados al servidor.
ServerName
Se especifica el nombre y el puerto con el que se identifica el server
Si el nombre no esta registrado en las DNS, se reemplaza la url por la I.p
ServerName localhost:80
DocumentRoot
Carpeta desde la que se sirven los documentos.
En esta carpeta se ponen las paginas que queremos publicar
DocumentRoot /var/www/html/test.io
DirectoryIndex
Nombre del archivo por defecto que se va a ir a buscar a cada directorio especificado en DocumentRoot. En caso de que no se especifique, por defecto será index.html
Se pueden agregar varios valores para que tome distintos nombres, el orden de los nombres de los archivos indica la prioridad
DirectoryIndex index.html index.htm index.js
LogLevel
Tipo de mensajes que se van a guardar en el fichero de errores
Los valores posibles son: DEBUG, INFO, NOTICE, WARN, ERROR, CRIT, ALERT, EMERG
CacheRoot
Directorio donde se almacenan los archivos de la cache de Apache
CachemaxExpire
Máximo numero de horas que se almacenan estos archivos
<VirtualHost ip:puerto>
Etiqueta utilizada para servir múltiple dominios. Al no especificar ninguna, Apache sirve solo el que se especifica con la directiva ServerName
<VirtualHost *:8080>
ServerName test.io
ServerAlias www.test.io
DocumentRoot /var/www/html/test.io
</VirtualHost>
ServerAlias
Nombres alternativos para el host
ServerPaths
Para usar servidores virtuales por nombre
ServerPath /virtual1
ServerName virtual1.ejemplo.test
Un cliente que no soporte host virtuales por nombre entrara a www.ejemplo.test/virtual1
Un cliente que si soporte hosts virtuales por nombre entrara a virtual1.ejemplo.com