10.5. Directivas de configuración en httpd.conf

El archivo de configuración del Servidor Apache HTTP es /etc/httpd/conf/httpd.conf. El archivo httpd.conf está bien comentado y es bastante autoexplicativo. Su configuración por defecto funciona para la mayoría de los casos; sin embargo, quizás quiera conocer el resto de las opciones de configuración más importantes.

AvisoAviso
 

Con la versión 2.0 del Servidor Apache HTTP, han cambiado muchas opciones de configuración. Si necesita migrar de la versión 1.3 al nuevo formato, consulte Sección 10.2.

10.5.1. Sugerencias de configuración generales

Si necesita configurar Servidor Apache HTTP sólo tiene que modificar el archivo /etc/httpd/conf/httpd.conf y después recargar o bien apagar y arrancar el proceso del comando httpd como se describe en Sección 10.4.

Antes de modificar el archivo httpd.conf, primero haga una copia del archivo original. Si crea una copia de respaldo, podrá recuperar el sistema de posibles errores cometidos antes al editar el nuevo archivo de configuración.

Si comete un error y su servidor de web no funciona correctamente, lo primero que debe realizar es revisar lo que lo que acaba de modificar en httpd.conf para ver si no hay errores de transcripción.

Después consulte el archivo de registro de errores del servidor web, /var/log/httpd/error_log. Este puede ser difícil de interpretar, todo depende del nivel de experiencia. Si acaba de tener problemas, de todas formas, las últimas entradas deberían de ayudarle a saber lo que ha pasado.

Las siguientes secciones proporcionan una breve descripción de las directivas incluídas en el archivo httpd.conf. Estas descripciones no estan completas. Para más información, consulte la documentación de Apache proporcionada en formato HTML en http://localhost/manual/ o en línea en la siguiente dirección: http://httpd.apache.org/docs-2.0/.

Para más información sobre las directivas mod_ssl, refiérase a la documentación incluida en formato HTML en http://localhost/mod/mod_ssl.html o en línea en: http://httpd.apache.org/docs-2.0/mod/mod_ssl.html.

10.5.2. ServerRoot

La directiva ServerRoot especifica el directorio de nivel superior que tiene el contenido web. Por defecto, ServerRoot está configurado a "/etc/httpd" para servidores seguros y no seguros.

10.5.3. ScoreBoardFile

ScoreBoardFile almacena información de procesos internos del servidor, la cual es usada para la comunicación entre el servidor padre y sus procesos hijos. Red Hat Linux utiliza memoria compartida para almacenar el ScoreBoardFile, el valor por defecto de /etc/httpd/logs/apache_runtime_status sólo es usado como un apoyo.

10.5.4. PidFile

PidFile nombra el archivo en el que el servidor graba su ID de proceso (pid). Por defecto, el PID es listado en /var/run/httpd.pid.

10.5.5. Timeout

Timeout define, en segundos, el tiempo que el servidor esperará para recibir y enviar peticiones durante la comunicación. Específicamente, Timeout define cuánto esperará el servidor para recibir peticiones GET, cuánto esperará para recibir paquetes TCP en una petición POST o PUT y cuánto esperará entre ACKs respondiendo a otros paquetes TCP. Timeout está configurado por defecto a 300, lo cual es apropiado para la mayoría de las situaciones.

10.5.6. KeepAlive

KeepAlive determina si el servidor permitirá más de una petición por conexión y se puede usar para prevenir a un cliente consumir demasiados recursos del servidor.

Por defecto Keepalive está configurado a off. Si Keepalive está en on y el servidor se vuelve muy ocupado, este puede rápidamente generar el máximo número de procesos hijos. En esta situación, el servidor se volverá significativamente lento. Si se activa Keepalive, es una buena idea configurar el KeepAliveTimeout a un valor bajo (consulte Sección 10.5.8 para más información sobre la directiva KeepAliveTimeout) y controle el archivo de registro /var/log/httpd/error_log en el servidor. Este registro informa cuando el servidor se esta quedando corto de procesos hijos.

10.5.7. MaxKeepAliveRequests

Esta directiva establece el número máximo de peticiones permitidas por cada conexión persistente. El Proyecto Apache recomienda un valor alto, lo que mejoraría el rendimiento del servidor. El valor predeterminado de MaxKeepAliveRequests es de 100 que debería bastar en la mayoría de los casos.

10.5.8. KeepAliveTimeout

La directiva KeepAliveTimeout establece el número de segundos que el servidor esperará a la siguiente petición, tras haber dado servicio a una petición, antes de cerrar la conexión. Una vez recibida la petición, se aplica la directiva Timeout en su lugar. KeepAliveTimeout está configurado a 15 segundos por defecto.

10.5.9. MinSpareServers y MaxSpareServers

El Servidor Apache HTTP se adapta dinámicamente a la carga percibida manteniendo un número apropiado de procesos de servidores libres basado en el tráfico. El servidor comprueba el número de servidores que esperan peticiones y elimina algunos si el número es más alto que MaxSpareServers o crea algunos si el número de servidores es menor que MinSpareServers.

El valor predeterminado de MinSpareServers es 5 y el de MaxSpareServers es 20. Estos valores predeterminados son suficientes en la mayoría de los casos. El número de MinSpareServers no debería de ser elevado ya que creará una gran carga incluso cuando el tráfico fuese bajo.

10.5.10. StartServers

StartServers establece cuántos procesos serán creados al arrancar. Ya que el servidor Web crea y elimina dinámicamente servidores según el tráfico, no se necesitará cambiar este parámetro. El servidor está configurado para arrancar ocho procesos al arrancar.

10.5.11. MaxClients

La directiva MaxClients establece un límite al total de los procesos del servidor (o clientes conectados simultáneamente) que se pueden ejecutar a la vez. El propósito principal de esta directiva es prevenir que un Servidor Apache HTTP descontrolado vuelva inestable al sistema operativo. Para los servidores muy ocupados este valor se debería colocar a un valor alto. El valor por defecto es 150. No se recomienda que el valor del comando MaxClients supere 256.

10.5.12. MaxRequestsPerChild

MaxRequestsPerChild establece el número máximo de peticiones que cada proceso hijo procesa antes de morir. La principal razón para configurar MaxRequestsPerChild es evitar que procesos de larga vida gasten memoria. El valor predeterminado de MaxRequestsPerChild para el servidor es de 1000.

10.5.13. Listen

El comando Listen identifica los puertos en los que el servidor Web aceptará las peticiones entrantes. Por defecto, el Servidor Apache HTTP está configurado para escuchar en el puerto 80 para comunicaciones Web no seguras y (en /etc/httpd/conf.d/ssl.conf el cual define cualquier servidor seguro) en el puerto 443 para comunicaciones seguras.

Si el Servidor Apache HTTP está configurado para escuchar a un puerto por debajo del 1024, se necesita al usuario root para iniciarlo. Para los puertos 1024 y superiores, httpd puede ser arrancado por cualquier usuario.

La directiva Listen también se puede usar para especificar direcciones IP particulares sobre las cuales el servidor aceptará conexiones.

10.5.14. Include

Include permite que se incluyan otros archivos de configuración en el tiempo de ejecución.

La ruta a estos archivos de configuración pueden ser absolutas o relativas con respecto al ServerRoot.

ImportanteImportante
 

Para que el servidor use módulos de paquetes individuales, como mod_ssl, mod_perl y php, la siguiente directiva tiene que estar en Section 1: Global Environment del httpd.conf:

Include conf.d/*.conf

10.5.15. LoadModule

LoadModule es usada para cargar módulos Dynamic Shared Object (DSO). Se puede encontrar más información sobre el soporte del Servidor Apache HTTP para DSO, incluyendo exáctamente cómo utilizar la directiva LoadModule, en Sección 10.7. Observe, que ya no es importante el orden en que se cargan estos módulos con el Servidor Apache HTTP 2.0. Consulte Sección 10.2.1.3 para más información sobre el soporte DSO del Servidor Apache HTTP 2.0.

10.5.16. ExtendedStatus

La directiva ExtendedStatus controla si Apache generará información básica del estado del servidor (off) o detallada (on), cuando el manejador server-status es llamado. El manejador Server-status es llamado usando etiquetas de Location. Se incluye más información sobre server-status en Sección 10.5.63.

10.5.17. IfDefine

Las etiquetas <IfDefine> y </IfDefine> envuelven directivas de configuración que son aplicadas si el "test" establecido en la etiqueta <IfDefine> es verdadero. Las directivas no se tienen en cuenta si el test es falso.

El test en las etiquetas <IfDefine> es un nombre de parámetro (por ejemplo, HAVE_PERL). Si el parámetro está definido, es decir, si se da como argumento al comando de arranque del servidor, entonces el test es verdadero. En este caso, cuando se arranca el servidor Web, el test es verdadero y se aplican las directivas contenidas en las etiquetas IfDefine.

Por defecto, las etiquetas <IfDefine HAVE_SSL> rodean las etiquetas de la máquina virtual para el servidor seguro. Las etiquetas <IfDefine HAVE_SSL> también rodean las directivas LoadModule y AddModule para el ssl_module.

10.5.18. User

La directiva User establece el nombre de usuario para el proceso del servidor y determina qué archivos puede accesar el servidor. Cualquier archivo que no esté accesible a este usuarip tampoco estará disponible para los clientes del Servidor Apache HTTP.

Por defecto User es configurado a apache.

NotaNota
 

Por razones de seguridad, el Servidor Apache HTTP se negará a ejecutarse como el usuario root.

10.5.19. Group

Especifica el nombre del grupo de los procesos Servidor Apache HTTP.

Por defecto Group está configurado a apache.

10.5.20. ServerAdmin

Configure la directiva ServerAdmin a la dirección de correo electrónico del administrador del servidor Web. Esta dirección de correo aparecerá en los mensajes de error en las páginas generadas por el servidor Web, de tal manera que los usuarios pueden comunicar errores enviando correo al administrador.

Por defecto, ServerAdmin es configurado a root@localhost.

Una forma típica de configurar ServerAdmin es situarlo en la dirección webmaster@ejemplo.com. Después cree un alias del webmaster para la persona responsable del servidor Web en /etc/aliases y ejecute /usr/bin/newaliases.

10.5.21. ServerName

Use la directiva ServerName para configurar un nombre de servidor y un número de puerto (que coincida con la directiva Listen) para el servidor. El ServerName no necesita coincidir con el nombre real de la máquina. Por ejemplo, el servidor Web puede ser www.example.com pero el nombre del servidor es en realidad foo.example.com. El valor especificado en ServerName debe ser un nombre de Domain Name Service válido (DNS) que pueda ser resuelto por el sistema — no invente algo.

Lo siguiente es una directiva ServerName de ejemplo:

ServerName www.example.com:80

Cuando especifique un ServerName, asegúrese de que el par de la dirección IP y el nombre del servidor esten incluidos en el archivo /etc/hosts.

10.5.22. UseCanonicalName

Cuando se configure esta directiva a on, se está indicando al Servidor Apache HTTP a que se referencie asímismo usando el valor especificado en las directivas ServerName y Port. Cuando UseCanonicalName es configurada a off, el servidor usará el valor usado por el cliente solicitante cuando se refiera a el.

UseCanonicalName está configurada a off por defecto.

10.5.23. DocumentRoot

DocumentRoot es el directorio que contiene la mayoría de los archivos HTML que se entregarán en respuesta a peticiones. El directorio predeterminado DocumentRoot para servidores seguros y no seguros es /var/www/html. Por ejemplo, el servidor puede recibir una petición para el siguiente documento:

http://example.com/foo.html

El servidor busca por el archivo siguiente en el directorio por defecto:

/var/www/html/foo.html

Si se quiere cambiar DocumentRoot para que no lo compartan los servidores seguros y no seguros, vea Sección 10.8.

10.5.24. Directory

Las etiquetas <Directory /path/to/directory> y </Directory> se usan para crear lo que se conoce como un contenedor y se usan para agrupar un grupo de directivas de configuración que sólo se aplican a ese directorio y sus subdirectorios. Cualquier directiva aplicable a un directorio puede usarse en las etiquetas <Directory>.

Por defecto, se aplican parámetros muy restrictivos al directorio raíz (/), utilizando las directivas Options (consulte Sección 10.5.25) y AllowOverride (vea Sección 10.5.26). Con esta configuración, cualquier directorio del sistema que necesite valores más permisivos ha de ser configurado explícitamente con esos valores.

En la configuración por defecto, otro contenedor Directory es configurado para el DocumentRoot el cual asigna parámetros menos rígidos al árbol del directorio para que el Servidor Apache HTTP pueda accesar archivos que residan allí.

El contenedor Directory también se puede usar para configurar directorios adicionales cgi-bin para las aplicaciones del servidor fuera del directorio especificado en la directiva ScriptAlias (consulte a Sección 10.5.44 para más información sobre esta directiva ScriptAlias).

Para lograr esto, el contenedor Directory debe configurar la opción ExecCGI para ese directorio.

Por ejemplo, si los scripts CGI están localizados en /home/my_cgi_directory, añada el contenedor siguiente Directory al archivo httpd.conf:

<Directory /home/my_cgi_directory>
    Options +ExecCGI
</Directory>

Luego, necesitará anular el comentario de la directiva AddHandler para identificar archivos con la extensión .cgi como scripts CGI. Consulte Sección 10.5.59 para saber cómo configurar el AddHandler.

Para que esto funcione, los permisos para los scripts CGI y la ruta completa a los scripts, se deben colocar a 0755.

10.5.25. Options

La directiva Options controla características del servidor que están disponibles en un directorio en particular. Por ejemplo, en los parámetros restrictivos especificados para el directorio raíz, el comando Options sólo permite FollowSymLinks. No hay características activadas, salvo que el servidor puede seguir enlaces simbólicos en el directorio raíz.

Por defecto, el directorio DocumentRoot, Options está configurado para incluir Indexes y FollowSymLinks. Indexes permite al servidor generar un listado de un directorio si no se especifica el DirectoryIndex (por ejemplo, index.html) es especificado. FollowSymLinks permite al servidor seguir enlaces simbólicos en ese directorio.

NotaNota
 

Las declaraciones Options desde la sección de configuración del servidor principal necesita ser replicado a cada contenedor VirtualHost individualmente. Refiérase a Sección 10.5.69 para más información sobre los contenedores VirtualHost.

10.5.26. AllowOverride

La directiva AllowOverride indica si puede o no sobreescribir Options por las declaraciones en un archivo .htaccess. Por defecto, tanto el directorio raíz como DocumentRoot están configurados para no permitir la sobreescritura .htaccess.

10.5.27. Order

La directiva Order controla el orden en el cual las directivas allow y deny son evaluadas. El servidor es configurado para evaluar las directivas Allow antes de las directivas Deny para el directorio DocumentRoot.

10.5.28. Allow

Allow especifica cual solicitante pueda accesar a un directorio dado. El solicitante puede ser all, un nombre de dominio, una dirección IP, una dirección IP parcial, un par de red/máscara de la red, etc. El directorio DocumentRoot esta configurado para Allow (permitir) a all, es decir, que todos tienen acceso.

10.5.29. Deny

Deny funciona igual que Allow, excepto que especifica a quién se le niega el acceso. DocumentRoot no es configurado para negar Deny peticiones a ninguno por defecto.

10.5.30. UserDir

UserDir es el nombre del subdirectorio dentro del directorio de cada usuario dónde estarán los archivos HTML personal que serán servidos por el servidor de Web. Esta directiva esta configurada por defecto a disable.

El nombre para el subdirectorio esta configurado a public_html en la configuración por defecto. Por ejemplo, el servidor puede recibir la siguiente petición:

http://example.com/~username/foo.html

El servidor buscará por el archivo:

/home/username/public_html/foo.html

En el ejemplo de arriba, /home/username/ es el directorio principal del usuario (observe que la ruta por defecto al directorio principal del usuario puede variar).

Hay que asegurarse que los permisos de los directorios de usuario sean correctos. El valor de los permisos deben ser de 0711. Los bits de lectura (r) y ejecución (x) deben estar activados en el directorio del usuario public_html (0755 también funcionará). El valor de los permisos con que se servirán los archivos desde public_html debe ser 0644 por lo menos.

10.5.31. DirectoryIndex

DirectoryIndex es la página por defecto que entrega el servidor cuando hay una petición de índice de un directorio especificado con una barra (/) al final del nombre del directorio.

Por ejemplo, cuando un usuario pide la página http://example/this_directory/, recibe la página DirectoryIndex si existe, o un listado generado por el servidor. El valor por defecto para DirectoryIndex es index.html y el tipo de mapa index.html.var. El servidor intentará encontrar cualquiera de estos archivos y entregará el primero que encuentre. Si no encuentra ninguno de estos archivos y Options Indexes esta configurado para ese directorio, el servidor genera y devuelve una lista, en formato HTML, de los subdirectorios y archivos del directorio, a menos que la característica de listar directorios esté desactivada.

10.5.32. AccessFileName

AccessFileName denomina el archivo que el servidor utilizará para información de control de acceso en cada directorio. Por defecto, el servidor utilizará .htaccess.

Justo tras AccessFileName, un conjunto de indicadores de Files aplican el control de acceso a cualquier archivo comenzando con un .ht. Estas directivas niegan el acceso Web a cualquier archivo .htaccess (o otros archivos que comiencen con .ht) por razones de seguridad.

10.5.33. CacheNegotiatedDocs

Por defecto, el servidor Web requiere a los "proxies" que no hagan caché de los documentos que se negocian en base al contenido (pueden cambiar en el tiempo o según la entrada de quien los solicita). Si se configura CacheNegotiatedDocs a on, se desactiva la función y se permite a los servidores proxy hacer caché de los documentos.

10.5.34. TypesConfig

TypesConfig nombra el archivo que configura la lista por defecto de asignaciones tipo MIME (extensiones de nombres de archivo a tipos de contenido). El archivo predeterminado TypesConfig es /etc/mime.types. En vez de modificar el /etc/mime.types, la forma recomendada de añadir asignaciones de tipo MIME es usando la directiva AddType.

Para más información sobre AddType, refiérase a Sección 10.5.58.

10.5.35. DefaultType

DefaultType establece el tipo de contenido por defecto que el servidor utilizará para documentos cuyos tipos MIME no puedan ser determinados. Por defecto es text/plain.

10.5.36. IfModule

Las etiquetas <IfModule> y </IfModule> crean un contenedor condicional que sólo es activado si el módulo especificado es cargado. Las directivas contenidas entre etiquetas IfModule son procesadas bajo una de dos condiciones. Las directivas son procesadas si el módulo entre la etiqueta de comienzo <IfModule> es cargado. O, si un símbolo de exclamación [!] aparece antes del nombre del módulo, las directivas son procesadas sólo si el módulo especificado en la etiqueta <IfModule> no es cargado.

Para más información sobre los módulos del Servidor Apache HTTP, refiérase a Sección 10.7.

10.5.37. HostnameLookups

HostnameLookups se puede configurar a on, off o double. Si se configura HostnameLookups a on, el servidor automáticamente resuelve las direcciones IP para cada conexión. Resolver las direcciones IP significa que el servidor hace una o más conexiones a un servidor DNS, añadiendo sobrecarga por procesamiento. Si HostnameLookups es configurado a double, el servidor realiza búsquedas inversa doble añadiendo aún más sobrecarga.

Para ahorrar recursos en el servidor, HostnameLookups es configurado a off por defecto.

Si se requieren nombres de host en los archivos de registro, considere ejecutar una de los muchas herramientas de análisis de log que llevan a cabo las búsquedas de DNS de forma mucho más eficiente y por montones cuando se este rotando los archivos de log del servidor Web.

10.5.38. ErrorLog

ErrorLog especifica el archivo donde se guardan los errores del servidor . Por defecto, esta directiva es configurada a /var/log/httpd/error_log.

10.5.39. LogLevel

LogLevel establece que tantos detalles tendrán los registros de mensajes de error. LogLevel se puede configurar (desde el que tiene menos detalles a los más detallados) a emerg, alert, crit, error, warn, notice, info o debug. El valor predeterminado de LogLevel es warn.

10.5.40. LogFormat

La directiva LogFormat pone el formato para los archivos de registro del servidor Web. El comando LogFormat usado en realidad depende de la configuración dada en la directiva CustomLog (consulte Sección 10.5.41).

Las siguientes son las opciones de formato si la directiva CustomLog es configurada a combined:

%h (dirección IP del host remoto o nombre de la máquina)

Lista la dirección IP de la máquina remota del cliente solicitante. Si HostnameLookups es configurada a on, el nombre de máquina del cliente es registrado a menos que no este disponible desde el DNS.

%l (rfc931)

No se usa. Un guión [-] aparece en el campo de registro para este campo.

%u (usuario autenticado)

Si se requiere autenticación, lista el nombre del usuario registrado. Usualmente, esto no se usa, por tanto aparece un guión [-] en el archivo de registro para este campo.

%t (fecha)

Lista la fecha y hora de la solicitud.

%r (cadena de la solicitud)

Lista la cadena de la solicitud exactamente como viene del navegador o cliente.

%s (estado)

Lista el estado de código HTTP el cual fue devuelto al host cliente.

%b (bytes)

Lista el tamaño del documento.

%\"%{Referer}i\" (referencia)

Lista la dirección URL de la página web que refiere el máquina cliente al servidor Web.

%\"%{User-Agent}i\" (agente usuario)

Lista el tipo de navegador Web que está realizando la solicitud.

10.5.41. CustomLog

CustomLog identifica el archivo de registro y su formato. Por defecto, el registro es guardado al archivo /var/log/httpd/access_log.

El formato por defecto CustomLog es combined. Lo siguiente ilustra el formato del archivo de registro combined:

remotehost rfc931 user date "request" status bytes referrer user-agent

10.5.42. ServerSignature

La directiva ServerSignature añade una línea que contiene la versión del Servidor Apache HTTP y el ServerName para cualquier documento generado por el servidor, tales como mensajes de error devueltos a los clientes. Por defecto ServerSignature está configurada a on.

También se puede configurar a off o a EMail. EMail, agrega una etiqueta HTML mailto:ServerAdmin a la línea de la firma de las respuestas autogeneradas.

10.5.43. Alias

La directiva Alias permite que haya directorios fuera del DocumentRoot a los que puede acceder el servidor. Cualquier URL que termine en el alias será automáticamente traducido a la ruta del alias. Por defecto, ya existe un alias configurado para un directorio icons. El servidor web puede acceder al directorio icons pero el directorio no está en DocumentRoot.

10.5.44. ScriptAlias

La directiva ScriptAlias define dónde pueden encontrarse los scripts CGI (u otros scripts). Normalmente, no es una buena idea colocar los scripts CGI dentro de DocumentRoot. Si los scripts CGI se encontrasen en DocumentRoot, podrían, potencialmente, ser considerados como documentos de texto. Por esta razón, la directiva ScriptAlias diseña un directorio especial fuera del directorio DocumentRoot para contener ejecutables del servidor y scripts. Este directorio es conocido como un cgi-bin y se configura por defecto a /var/www/cgi-bin/.

Es posible establecer directorios para almacenar ejecutables fuera del directorio cgi-bin. Para más instrucciones sobre cómo hacer esto, refiérase a Sección 10.5.59 y Sección 10.5.24.

10.5.45. Redirect

Cuando se mueve una página web, se puede utilizar Redirect para crear asignaciones de la ubicación del archivo a un nuevo URL. El formato es como sigue:

Redirect /<old-path>/<file-name> http://<current-domain>/<current-path>/<file-name>

En este ejemplo, sustituya <old-path> con la vieja información de la ruta por <file-name> y <current-domain> y <current-path> con el dominio actual y la información de la ruta para <file-name>.

En este ejemplo, cualquier petición <file-name> en la vieja ubicación será redirigida automáticamente a la nueva ubicación.

Para técnicas más avanzadas de redireccionamiento, use el módulo mod_rewrite incluido con el Servidor Apache HTTP. Para más información sobre la configuración del módulo mod_rewrite, refiérase a la documentación de la Apache Software Foundation en http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.

10.5.46. IndexOptions

IndexOptions controla la apariencia de los listados generados por el servidor, al añadir iconos y texto descriptivo, etc. Si Options Indexes está configurado (see Sección 10.5.25), el servidor Web server genera un listado de directorio cuando el servidor Web recibe una petición HTTP para un directorio sin un índice.

Primero el servidor Web busca en el directorio solicitado un archivo que coincida los nombres listados en la directiva DirectoryIndex (usualmente, index.html). Si el servidor no encuentra un archivo index.html, el Servidor Apache HTTP genera un listado del directorio en HTML. La apariencia del listado de este directorio es controlada, en parte, por la directiva IndexOptions.

La configuración predeterminada activa FancyIndexing. Esto significa que un usuario puede reordenar un listado de directorio haciendo click en las cabeceras de columnas. Otro click en la misma cabecera cambiará del orden ascendente al descendente. FancyIndexing también muestra iconos diferentes para diferentes archivos, basados en las extensiones de archivos.

La opción AddDescription, cuando se utiliza junto con FancyIndexing, presenta una descripción corta para el archivo en los listados de directorios generados por el servidor.

IndexOptions tiene otros parámetros que pueden activarse para controlar la apariencia de los listados. Los parámetros incluyen IconHeight y IconWidth, para hacer que el servidor incluya etiquetas HTML HEIGHT y WIDTH para los iconos en las páginas generadas por el servidor; IconsAreLinks, hace que los iconos actúen como parte del enlace HTML junto con el nombre del archivo, y otros.

10.5.47. AddIconByEncoding

Esta directiva denomina qué iconos se mostrarán con los archivos según su codificación MIME, en los listados de directorio. Por ejemplo, por defecto, el servidor muestra el icono compressed.gif junto a archivos con codificación MIME x-compress y x-gzip en los listados de directorio.

10.5.48. AddIconByType

Esta directiva denomina qué iconos se mostrarán con los archivos con codificación MIME, en los listados del directorio. Por ejemplo, por defecto, el servidor muestra el icono text.gif junto a archivos con tipo MIME text en los listados del directorio.

10.5.49. AddIcon

AddIcon dice al servidor qué icono mostrar en los listados del directorio para ciertos tipos de archivos según la extensión. Por ejemplo, el servidor Web muestra el icono binary.gif para archivos con extensiones .bin o .exe.

10.5.50. DefaultIcon

DefaultIcon especifica el icono desplegado en el listado generado por el servidor para archivos que no tienen otro icono especificado. El archivo de imagen por defecto es unknown.gif.

10.5.51. AddDescription

Cuando utilice FancyIndexing como un parámetro de IndexOptions, la directiva AddDescription se puede usar para mostrar descripciones especificadas por el usuario para ciertos archivos o tipos de archivo en un listado de directorio generado por el servidor. La directiva AddDescription soporta el listado de archivos específicos, expresiones con comodines o extensiones de archivos.

10.5.52. ReadmeName

La directiva ReadmeName determina el archivo (si existe dentro del directorio) que se adjuntará a los listados de los directorios. El servidor Web intentará primero incluirlo como documento HTML y luego como texto. El valor predeterminado de ReadmeName es README.html.

10.5.53. HeaderName

La directiva HeaderName dicta el archivo (si existe dentro del directorio) que se antepondrá al comienzo de los listados de los directorios. Al igual que con ReadmeName, el servidor intentará incluirlo como documento HTML si es posible, o en caso contrario, como texto.

10.5.54. IndexIgnore

IndexIgnore lista las extensiones de archivo, los nombres de los archivos parciales, las expresiones con comodines o los nombres completos. El servidor Web no incluirá los archivos que encajen en estos patrones en los listados de directorios.

10.5.55. AddEncoding

La directiva AddEncoding dice qué extensiones especifican un tipo particular de codificación. AddEncoding se puede usar para decirle a los navegadores (no a todos) que descompriman ciertos archivos mientras los descargan.

10.5.56. AddLanguage

La directiva AddLanguage asocia extensiones a contenidos específicos de idiomas. Esta directiva es útil para la negociación de contenidos, cuando el Servidor Apache HTTP devuelve contenidos en diferentes idiomas dependiendo de la configuración del idioma del navegador Web.

10.5.57. LanguagePriority

La directiva LanguagePriority permite dar la prioridad para diferentes idiomas en caso de que el navegador Web no especique la preferencia de idioma.

10.5.58. AddType

Utilice la directiva AddType para definir parejas de tipo MIME y sus extensiones. Por ejemplo, si usa el PHP4, utilice AddType para que el servidor Web reconozca archivos con extensiones PHP (.php4, .php3, .phtml y .php) como tipos MIME PHP. La directiva siguiente le indica al Servidor Apache HTTP que reconozca la extensión de archivo .shtml:

AddType text/html .shtml
AddHandler server-parsed .shtml

10.5.59. AddHandler

La directiva AddHandler mapea extensiones de archivos a manejadores específicos. Por ejemplo, el manejador cgi-script puede mapearse con la extensión .cgi para que automáticamente trate a cualquier archivo con un nombre que termine en .cgi como un script CGI. A continuación se presenta un ejemplo de una directiva AddHandler para la extensión .cgi.

AddHandler cgi-script .cgi

Esta directiva habilita a CGIs fuera del cgi-bin a que funcionen en cualquier directorio en el servidor que tengan la opción ExecCGI dentro del contenedor de directorios. Refiérase a Sección 10.5.24 para más información sobre la configuración de la opción ExecCGI para un directorio.

Además de los scripts CGI, la directiva AddHandler es usada para procesar archivos de mapas de imagen y HTML analizados por el servidor.

10.5.60. Action

Action especifica parejas tipo contenido MIME y script CGI, para que cuando un archivo de ese tipo de media sea solicitado, se ejecute un script CGI particular.

10.5.61. ErrorDocument

La directiva ErrorDocument asocia un código de respuesta HTTP con un mensaje o un URL para que sea devuelto al cliente. Por defecto, el servidor Web produce una salida simple de mensaje de error cuando ocurre alguno. La directiva ErrorDocument obliga a que el servidor Web envie una salida de mensaje personalizado o redirije al cliente a un URL local o externo.

ImportanteImportante
 

Para que el mensaje sea válido se debe rodear en un par de dobles comillas ["].

10.5.62. BrowserMatch

La directiva BrowserMatch permite al servidor definir variables de entorno y/o tomar acciones según sea el campo de cabecera User-Agent del HTTP, que identifica el tipo de navegador Web del cliente. Por defecto, el servidor usa BrowserMatch para denegar la conexión a navegadores con problemas conocidos y para desactivar "keepalives" y vaciados de cabecera de HTTP para navegadores que se sabe tienen problemas con acciones de ese tipo.

10.5.63. Location

Las etiquetas <Location> y </Location> permiten crear un contenedor en el cual se puede especificar el control de acceso basado en URL.

Por ejemplo, para permitir a personas conectarse desde dentro del dominio del servidor para ver informes de estado, utilice las directivas siguientes:

<Location /server-status>
    SetHandler server-status
    Order deny,allow Deny from all
    Allow from <.example.com>
</Location>

Reemplace <.example.com> con el nombre de dominio de segundo nivel para el servidor Web.

Para proporcionar informes de configuración del servidor (incluyendo los módulos instalados y las directivas de configuración) a peticiones desde dentro del dominio, utilice las siguientes directivas:

<Location /server-info>
    SetHandler server-info
    Order deny,allow
    Deny from all
    Allow from <.example.com>
</Location>

Una vez más, reemplace <.example.com> con el nombre del dominio de segundo nivel para el servidor Web.

10.5.64. ProxyRequests

Para configurar el Servidor Apache HTTP para que funcione como un servidor proxy, elimine las marcas hash del comienzo de la línea <IfModule mod_proxy.c> para cargar el módulo mod_proxy y configurar la directiva ProxyRequests a On.

10.5.65. Proxy

Las etiquetas <Proxy *> y </Proxy> crean un contenedor el cual envuelve un grupo de directivas de configuración solamente para aplicar al servidor proxy. Muchas directivas las cuales son permitidas dentro del contenedor <Directory> pueden también ser usadas dentro del contenedor <Proxy>.

10.5.66. ProxyVia

La directiva ProxyVia controla si se envía HTTP Via: junto con peticiones o respuestas que vayan vía el servidor proxy Apache. Via: header mostrará el nombre de la máquina si ProxyVia está en On, muestra el nombre de máquina y la versión del Servidor Apache HTTP para Full, y cualquier línea Via: se enviará sin cambiar si está ProxyVia está en Off, y las líneas Via: serán eliminadas si está en Block.

10.5.67. Directivas Cache

Hay varias directivas de caché suministradas por el archivo de configuración del Servidor Apache HTTP. En la mayoría de los casos, al quitar el comentario de estas líneas mediante la eliminación del símbolo [#] del principio de la línea es suficiente. Lo siguiente, sin embargo, es una lista de algunas de las directivas relacionadas a caché más importantes.

10.5.68. NameVirtualHost

La directiva NameVirtualHost asocia una dirección IP y número de puerto, si es necesario, para cualquier máquina virtual basada en nombres. El hospedaje virtual basado en nombres permite a un Servidor Apache HTTP servir a dominios diferentes sin usar múltiples direcciones IP.

NotaNota
 

Los hosts virtuales basados en nombre only funcionan con conexiones HTTP no seguras. Si está usando host virtuales con un servidor seguro, use host virtuales basados en direcciones IP.

Para habilitar el hospedaje basado en nombres, quite los comentarios de la directiva de configuración NameVirtualHost y añada la dirección IP correcta. Luego añada más contenedores VirtualHost para cada host virtual.

10.5.69. VirtualHost

Las etiquetas <VirtualHost> y </VirtualHost> crean un contenedor mostrando las características de un host virtual. El contenedor <VirtualHost> acepta la mayoría de las directivas de configuración.

Un conjunto de contenedores VirtualHost comentados se proporciona en httpd.conf, el cual ilustra el mínimo conjunto de directivas de configuración necesarias para cada host virtual. Refiérase Sección 10.8 para más información sobre los host virtuales.

NotaNota
 

Todos los contenedores de host virtuales SSL han sido movidos al archivo /etc/httpd/conf.d/ssl.conf.

10.5.70. Directivas de configuración SSL

Las directivas SSL en el archivo /etc/httpd/conf.d/ssl.conf se pueden configurar para activar las comunicaciones Web seguras usando SSL y TLS.

10.5.70.1. SetEnvIf

SetEnvIf configura las variables del entorno basado en las cabeceras de las conexiones seguras entrantes. En el archivo /etc/httpd/conf.d/ssl.conf, se utiliza para desactivar el keepalive del HTTP y permitir SSL para cerrar la conexión sin una alerta de notificación desde el navegador del cliente. Esta configuración es necesaria para ciertos navegadores que no cierran de forma confiable la conexión SSL.

Para más información sobre las directivas SSL, apunte su navegador Web a la siguiente dirección:

Para más información sobre la configuración de un Servidor seguro HTTP de Apache vea el capítulo llamado Configuración de un Servidor HTTP de Apache en el Manual de personalización de Red Hat Linux.

NotaNota
 

En la mayoría de los casos, las directivas SSL son configuradas apropiadamente cuando se instalan. Tenga cuidado cuando altere las directivas de Servidor seguro HTTP de Apache pues un error en la configuración puede provocar que el servidor sea vulnerable en términos de seguridad.