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

Mandanos tus sugerencias

Ayudanos con ideas para los artículos de este blog a contacto@somospnt.com

¡Seguínos en nuestras redes sociales para enterarte de los últimos posts!