10.5. Directrices 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, es una buena idea familiarizarse con algunas 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 la 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. Al crear una copia de respaldo se hace más fácil recuperarse de posibles errores cometidos mientras se editaba el 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. Sin embargo, las últimas entradas en el registro deberían de ayudarle a saber lo que ha pasado.

Las siguientes subsecciones proporcionan una breve descripción de muchas directrices incluidas en el archivo httpd.conf. Estas descripciones no son completas. Para más información, consulte la documentación de Apache en http://httpd.apache.org/docs-2.0/.

Para más información sobre las directrices mod_ssl, refiérase a la documentación en http://httpd.apache.org/docs-2.0/mod/mod_ssl.html.

10.5.2. ServerRoot

La directriz 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. 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.4. Timeout

Timeout define, en segundos, el tiempo que el servidor esperará por recibir y transmitir durante la comunicación. Timeout está configurado por defecto a 300 segundos, lo cual es apropiado para la mayoría de las situaciones.

10.5.5. 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 la Sección 10.5.7 para más información sobre la directriz 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.6. MaxKeepAliveRequests

Esta directriz 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.7. KeepAliveTimeout

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

10.5.8. IfModule

Las etiquetas <IfModule> y </IfModule> crean un contenedor condicional que sólo es activado si el módulo especificado es cargado. Las directrices contenidas entre etiquetas IfModule son procesadas bajo una de dos condiciones. Las directrices son procesadas si se carga el módulo entre la etiqueta de comienzo <IfModule>. O, si un símbolo de exclamación [!] aparece antes del nombre del módulo, entonces las directrices 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 la Sección 10.7.

10.5.9. Directrices MPM específicas al pool de servidores

Como se explicó en la Sección 10.2.1.2, bajo el Servidor Apache HTTP 2.0 la responsabilidad por el manejo de las características del pool de servidores recae sobre un grupo de módulos llamado MPMs. Las características del pool de servidores difieren dependiendo de cual MPM es utilizado. Por esta razón, es necesario un contenedor IfModule para definir el pool de servidores del MPM en uso.

Por defecto, Servidor Apache HTTP 2.0 define el pool de servidores para ambos MPMs: prefork y worker.

La sección siguiente lista las directrices encontradas dentro de los contenedores del pool de servidores específicos al MPM.

10.5.9.1. StartServers

La directriz StartServers establece cuántos procesos de servidor serán creados al arrancar. Ya que el servidor Web crea y elimina dinámicamente procesos de servidor según el tráfico, no se necesitará cambiar este parámetro. El servidor web está configurado para arrancar 8 procesos del servidor al arrancar para el MPM prefork y 2 para el MPM worker.

10.5.9.2. MaxRequestsPerChild

MaxRequestsPerChild establece el número máximo de peticiones que cada proceso de servidor 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 MPM prefork es de 4000 y, para el MPM worker, es 0.

10.5.9.3. MaxClients

La directriz 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 directriz 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, sin importar el MPM que se utilice. Sin embargo, no se recomienda que el valor del comando MaxClients supere 256 cuando se utilice el MPM prefork.

10.5.9.4. MinSpareServers y MaxSpareServers

Estos valores solamente son utilizados con el MPM prefork. Ellos ajustan como el Servidor Apache HTTP se adapta dinámicamente a la carga percibida manteniendo un número apropiado de procesos de servidores extra o de repuesto basado en el número de peticiones entrantes. 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. Tenga cuidado de no incrementar el número de MinSpareServers a un número muy elevado ya que creará una gran carga de procesamiento, incluso cuando el tráfico fuese bajo.

10.5.9.5. MinSpareThreads y MaxSpareThreads

Estos valores solamente son utilizado con el MPM worker. Ellos ajustan como el Servidor Apache HTTP se adapta dinámicamente a la carga percibida manteniendo un número apropiado de hilos de servidores extra basado en el número de peticiones entrantes. El servidor comprueba el número de hilos de servidores que esperan peticiones y elimina algunos si el número es más alto que MaxSpareThreads o crea algunos si el número de servidores es menor que MinSpareThreads.

El valor predeterminado de MinSpareThreads es 25 y el de MaxSpareThreads es 75. Estos valores predeterminados son apropiados en la mayoría de los casos. El valor para MaxSpareThreads debe ser mayor o igual que la suma de MinSpareThreads y ThreadsPerChild, de lo contrario el Servidor Apache HTTP lo corregirá automáticamente.

10.5.9.6. ThreadsPerChild

Este valor solamente es utilizado con el MPM worker. Configura el número de hilos dentro de cada proceso hijo. El valor por defecto para esta directriz es 25.

10.5.10. 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 el archivo /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 en 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 directriz Listen también se puede usar para especificar direcciones IP particulares sobre las cuales el servidor aceptará conexiones.

10.5.11. 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, tiene que estar la siguiente directriz en Section 1: Global Environment del httpd.conf:

Include conf.d/*.conf

10.5.12. 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 directriz LoadModule, en la 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 la Sección 10.2.1.3 para más información sobre el soporte DSO del Servidor Apache HTTP 2.0.

10.5.13. ExtendedStatus

La directriz ExtendedStatus controla si Apache generará información básica del estado del servidor (off) o detallada (on), cuando se invoca el manejador server-status usando etiquetas Location. Se incluye más información sobre server-status en la Sección 10.5.60.

10.5.14. IfDefine

Las etiquetas IfDefine envuelven directrices de configuración que son aplicadas si el "test" establecido en la etiqueta <IfDefine> es verdadero. Las directrices 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 directrices contenidas en las etiquetas IfDefine.

10.5.15. SuexecUserGroup

La directriz SuexecUserGroup, que se origina desde el módulo mod_suexec, permite especificar privilegios de ejecución de usuario y grupo para programas CGI. Las solicitudes no CGI también son procesadas con el usuario y el grupo especificado en las directrices User y Group.

NotaNota
 

La directriz SuexecUserGroup reemplaza la configuración de Servidor Apache HTTP 1.3 de utilizar las directrices User y Group dentro de la configuración de las secciones VirtualHosts.

10.5.16. User

La directriz User establece el nombre de usuario para el proceso del servidor y determina qué archivos pueden acceder al servidor. Cualquier archivo que no esté accesible a este usuario tampoco estará disponible para los clientes conectándose al Servidor Apache HTTP.

Por defecto User es configurado a apache.

Esta directriz se ha desaprobado para la configuración de hosts virtuales.

NotaNota
 

Por razones de seguridad, el Servidor Apache HTTP no se ejecuta como el usuario root.

10.5.17. Group

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

Esta directriz se ha desaprobado para la configuración de hosts virtuales.

Por defecto, Group está configurado a apache.

10.5.18. ServerAdmin

Configure la directriz 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 configurarlo en a webmaster@ejemplo.com. Una vez configurado, cree un alias del webmaster para la persona responsable del servidor Web en /etc/aliases y ejecute /usr/bin/newaliases.

10.5.19. ServerName

Use la directriz ServerName para configurar un nombre de servidor y un número de puerto (que coincida con la directriz 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 del Servicio de Nombres de Dominio (Domain Name Service, DNS)válido que pueda ser resuelto por el sistema — no invente algo.

Lo siguiente es una directriz 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.20. UseCanonicalName

Cuando se configure esta directriz a on, se está indicando al Servidor Apache HTTP a que se referencie asímismo usando el valor especificado en las directrices 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.21. 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 web 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 web seguros y no seguros, vea la Sección 10.8.

10.5.22. Directory

Las etiquetas <Directory /path/to/directory> y </Directory> se usan para crear un contenedor que se utiliza para cercar un grupo de directrices de configuración que sólo se aplican a un directorio y sus subdirectorios específicos. Cualquier directriz aplicable a un directorio puede usarse en las etiquetas Directory.

Por defecto, se aplican parámetros muy restrictivos al directorio raíz (/), utilizando las directrices Options (consulte la Sección 10.5.23) y AllowOverride (vea la Sección 10.5.24). 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 acceder a los 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 directriz ScriptAlias (consulte a la Sección 10.5.41 para más información).

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 directriz AddHandler para identificar archivos con la extensión .cgi como scripts CGI. Consulte la Sección 10.5.56 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.23. Options

La directriz Options controla cuáles características del servidor están disponibles en un directorio en particular. Por ejemplo, en los parámetros restrictivos especificados para el directorio raíz, 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, en el directorio DocumentRoot, Options se configura 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). FollowSymLinks permite al servidor seguir enlaces simbólicos en ese directorio.

NotaNota
 

Se tienen que duplicar las declaraciones Options de la sección principal de configuración del servidor para cada contenedor VirtualHost individualmente. Refiérase a la Sección 10.5.65 para más información.

10.5.24. AllowOverride

La directriz AllowOverride indica si puede o no ignorar cualquiera de las Options por las declaraciones en un archivo .htaccess. Por defecto, tanto el directorio raíz como DocumentRoot están configurados para no se permita ignorar .htaccess.

10.5.25. Order

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

10.5.26. Allow

Allow especifica cual cliente puede acceder 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 está configurado para permitir (Allow) peticiones desde todos (all), es decir, que todos tienen acceso.

10.5.27. 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.28. UserDir

UserDir es el nombre del subdirectorio dentro del directorio principal de cada usuario dónde estarán los archivos HTML personal que serán servidos por el servidor de Web. Esta directriz 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 principales de usuario esten configurados correctamente. 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á). Los archivos servidos en un directorio principal de usuario public_html debe estar configurados, por lo menos, a 0644.

10.5.29. 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.

Cuando un usuario pide la página http://ejemplo/este_directorio/, recibe la página del índice del directorio, DirectoryIndex, si existe, o un listado de directorios 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 dentro del directorio, a menos que la característica de listar directorios esté desactivada.

10.5.30. 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 directrices niegan el acceso Web a cualquier archivo .htaccess (o otros archivos que comiencen con .ht) por razones de seguridad.

10.5.31. CacheNegotiatedDocs

Por defecto, el servidor Web requiere a los servidores proxy 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 acceso a los servidores proxy a tales documentos caché.

10.5.32. 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 directriz AddType.

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

10.5.33. 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.34. 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 del DNS, 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.35. ErrorLog

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

10.5.36. LogLevel

LogLevel establece la cantidad de detalles que 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.37. LogFormat

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

Las siguientes son las opciones de formato si la directriz 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 utiliza, 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.38. 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, como se ilustra a aquí:

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

10.5.39. ServerSignature

La directriz 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.40. Alias

El valor Alias hace accesibles a los directorios fuera del directorio DocumentRoot. 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 el DocumentRoot.

10.5.41. ScriptAlias

La directriz ScriptAlias define donde pueden encontrarse los scripts CGI. Normalmente, no es una buena idea colocar los scripts CGI dentro de DocumentRoot, donde podrían, potencialmente, ser visualizados como documentos de texto. Por esta razón, la directriz 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 la Sección 10.5.56 y la Sección 10.5.22.

10.5.42. 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.43. IndexOptions

IndexOptions controla la apariencia de los listados generados por el servidor, al añadir iconos, texto descriptivo, etc. Si Options Indexes está configurado (vea la Sección 10.5.23), 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 directriz 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 directriz IndexOptions.

La configuración predeterminada activa FancyIndexing. Esto significa que un usuario puede reordenar un listado de directorio haciendo clic en las cabeceras de columnas. Otro clic 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 generados por los servidores. Los parámetros IconHeight y IconWidth requieren que el servidor incluya etiquetas HTML HEIGHT y WIDTH para los iconos en las páginas generadas por el servidor. El parámetro IconsAreLinks combina el icono con el ancla HTML, la cual contiene el enlace URL objetivo.

10.5.44. AddIconByEncoding

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

10.5.45. AddIconByType

Esta directriz 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.46. 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.47. 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.48. AddDescription

Cuando utilice FancyIndexing como un parámetro de IndexOptions, la directriz 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 directriz AddDescription soporta el listado de archivos específicos, expresiones con comodines o extensiones de archivos.

10.5.49. ReadmeName

La directriz 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 plano. El valor predeterminado de ReadmeName es README.html.

10.5.50. HeaderName

La directriz 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.51. 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á ningún archivo que coincida con estos patrones en los listados de directorios.

10.5.52. AddEncoding

La directriz AddEncoding nombra las extensiones de archivos que deberían especificar un tipo particular de codificación. También se puede usar AddEncoding para decirle a los navegadores que descompriman ciertos archivos mientras los descargan.

10.5.53. AddLanguage

La directriz AddLanguage asocia extensiones a contenidos específicos de idiomas. Esta directriz 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.54. LanguagePriority

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

10.5.55. AddType

Utilice la directriz AddType para definir o suprimir por defectopares tipo MIME y extensiones de archivos. La siguiente directriz de ejemplo le dice al Servidor Apache HTTP que reconozca la extensión de archivos .tgz.

AddType application/x-tar .tgz

10.5.56. AddHandler

La directriz AddHandler hace corresponder extensiones de archivos a manejadores específicos. Por ejemplo, se puede corresponder el manejador cgi-script 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 directriz AddHandler para la extensión .cgi.

AddHandler cgi-script .cgi

Esta directriz 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 la Sección 10.5.22 para más información sobre la configuración de la opción ExecCGI para un directorio.

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

10.5.57. 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.58. ErrorDocument

La directriz 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 directriz ErrorDocument obliga a que el servidor Web envie una salida de mensaje personalizado o página.

ImportanteImportante
 

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

10.5.59. BrowserMatch

La directriz 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.60. 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 directrices 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 directrices de configuración) a peticiones desde dentro del dominio, utilice las siguientes directrices:

<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.61. ProxyRequests

Para configurar el Servidor Apache HTTP para que funcione como un servidor proxy, elimine las marcas de almohadillas o numeral (#) del comienzo de la línea <IfModule mod_proxy.c>, las ProxyRequests y cada línea en la estrofa <Proxy>. Configure la directriz ProxyRequests a On, y configure cuáles dominios tienen acceso al servidor en la directriz Allow from de la estrofa <Proxy>.

10.5.62. Proxy

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

10.5.63. Directrices Cache

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

Lo siguiente es una lista de algunas directrices comunes relacionadas con caché.

10.5.64. NameVirtualHost

La directriz 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 directriz de configuración NameVirtualHost y añada la dirección IP correcta. Luego añada más contenedores VirtualHost para cada host virtual como sea necesario para su configuración.

10.5.65. 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 directrices de configuración.

Se proporciona un contenedor VirtualHost en comentarios en httpd.conf, el cual ilustra el mínimo conjunto de directrices de configuración necesarias para cada host virtual. Refiérase a la Sección 10.8 para más información sobre los host virtuales.

NotaNota
 

El contenedor de host virtuales SSL por defecto reside en el archivo /etc/httpd/conf.d/ssl.conf.

10.5.66. Configuración de directrices para SSL

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

10.5.66.1. SetEnvIf

SetEnvIf configura las variables del entorno basado en las cabeceras de las conexiones entrantes. No es una directriz únicamente de SSL, aunque se presenta en el archivo /etc/httpd/conf.d/ssl.conf. En este contexto, su propósito es desactivar el keepalive del HTTP y permitir a SSL 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 otras directrices dentro del archivo de configuración SSL, consulte los siguientes URLs:

Para más información sobre la configuración de un servidor seguro HTTP de Apache, consulte el capítulo llamado Configuración de un servidor seguro HTTP de Apache en el Manual de administración del sistema de Red Hat Enterprise Linux.

NotaNota
 

En la mayoría de los casos, las directrices SSL son configuradas apropiadamente durante la instalación de Red Hat Enterprise Linux. Tenga cuidado cuando altere las directrices del Servidor seguro HTTP de Apache pues un error en la configuración puede provocar que el servidor sea vulnerable en términos de seguridad.