Apache HOWTO: documentación

Cómo:


Cómo redireccionar un servidor entero o un directorio a una única URL

Hay dos formas principales para redireccionar todas las peticiones de un servidor entero a una dirección única: una requiere el uso de mod_rewrite y la otra el uso de un script CGI.

Primero: si todo lo que necestitas hacer es migrar el servidor de un nombre a otro, simplemente, puedes usar la directiva Redirect, facilitada por mod_alias:

Redirect / http://www.apache.org/

Como Redirect remitirá a la ruta completa puede, sin embargo, no ser apropiado, por ejemplo, cuando la estructura del directorio ha cambiado después de moverlo y, simplemente, quieres dirigir a la gente a la página de inicio.

La mejor opción es usar el módulo estándar de Apache mod_rewrite. Si el módulo está compilado, las líneas siguientes

RewriteEngine On RewriteRule / .* http://www.apache.org/ [R]
mandarán un HTTP 302 Redirect contra el cliente y, sea la que sea lo que dieron en la URL original, enviarán a "e;http://www.apache.org/"e;.

La segunda opción es instalar un ScriptAlias señalando a un script CGI que genere el estado 301 ó 302 y la localización de otro servidor.

Usando un script CGI puedes interceptar varias peticiones y tratarlas de una forma diferenciada, por ejemplo puedes desear interceptar una petición POST, de manera que el cliente no se redirija a un script en otro servidor que espera la información del método POST (un redireccionamiento perdería esta información del método POST). Podrías, también, usar un script CGI si no quieres compilar el módulo mod_rewrite en tu servidor.

Esta es la manera de redirigir todas las peticiones a un script en el archivo de configuración del servidor:

ScriptAlias / /usr/local/httpd/cgi-bin/redirect_script/
y este es un sencillo script en Perl para redirigir las peticiones:
#!/usr/local/bin/perl

print "Status: 302 Moved Temporarily\r\n" .
Location: http://www.some.where.else.com/\r\n" .
"\r\n";


Cómo reiniciar los ficheros de bitácora

Tarde o temprano, querrás reiniciar los ficheros de bitácora (access_log y error_log) porque son demasiado grandes o porque están llenos de información vieja que ya no es necesaria.

access.log suele crecer 1Mb por cada 10.000 peticiones.

La mayoría de la gente trata primero de reemplazar el fichero moviéndolo o borrándolo. Pero esta no es la forma de trabajo más adecuada.

Apache continuará escribiendo en el fichero de bitácora sobre la misma salida que tenía antes de moverlo. Esto generará un nuevo fichero de bitácora recién creado que será tan grande como el viejo, pero que contendrá miles (o millones) de caracteres nulos.

El procedimiento correcto es mover el fichero de bitácora y, entonces, indicáselo a Apache comunicándole que debe reabrir los ficheros.

Para avisar a Apache se utiliza la señal SIGHUP (-l), por ejemplo:

mv access_log access_log.old
kill -1 `cat httpd.pid`

Nota: httpd.pid es un fichero que contiene los identificadores de los procesos del demonio http de Apache, y que Apache guarda en el mismo directorio que los ficheros de bitácora.

Mucha gente utiliza este procedimiento para reemplazar (y realizar las copias de seguridad) de sus ficheros de bitácora todas las noches o semanalmente.


Cómo detener o restringir el acceso de los robots de búsqueda

¿Alguna vez te has preguntado por qué algunos clientes están interesados en un fichero denominado robots.txt, que no tienes y nunca tuviste?

Estos clientes se denominan robots (también son conocidos como rastreadores, arañas y oreos bonitos nombres), esto es, clientes automáticos especiales que recorren la red buscando recursos interesantes.

Muchos de estos robots son usados para generar un tipo de índice de la red que sirve de base a los motores de búsqueda para localizar la información.

robots.txt proporciona una manera de limitar las actividades de estos robots en el sitio web o, más a menudo, dejar el sitio web tranquilo.

Cuando los primeros robots fueron desarrollados, tenían mala reputación puesto que enviaban cientos de peticiones a cada sitio web y a menudo producían sobrecargas. Esto ha mejorado mucho desde entonces, gracias a la Directiva para la programación de Robots, pero, a pesar de ello, algunos robots pueden presentar una conducta antipática que los administradores de sitios web no estén dispuestos a tolerar y deseen parar.

Otra razón es que algunos administradores de sitios web quieren bloquear el acceso de los robots por la manera en que la información dinámica reunida por los robots es posteriormente indexada. Frecuentemente hay sistemas para anotar documentos mal usados puesto que pueden ser indexados por robots nómadas. Por lo tanto, el índice generado a menudo revertirá en un algoritmo poco satisfactorio para determinar qué se ha indexado.

Normalmente, los índices son construidos a partir del texto que aparece en los títulos del documento (dentro de la etiqueta: <TITLE>) o en los encabezamientos (marcados con las etiquetas <H1>) y, muy a menudo, las palabras indexadas son completamente irrelevantes o engañosas sobre el contenido del documento. El peor índice es el que utiliza cada palabra del documento. Inevitablemente, esto provoca que los motores de búsqueda ofrezcan sugerencias de mala calidad que hacen perder un tiempo valioso tanto a los usuarios como a los servidores.

Si decides excluir los robots completamente o limitar las zonas en las que puedan vagar, se puede incluir un fichero robots.txt; remitirse a las páginas de información sobre robots habilitadas por Martijn Koster para la sintaxis.


Cómo gestionar peticiones desde un proxy SSL a través de nuestro servidor no-SSL
(presentado por David Sedlock)

La capa de conexión segura SSL (Secure Socket Layer) usa el puerto 443 para las peticiones de páginas seguras. Si tu visualizador permanece justamente allí durante mucho tiempo cuando intentas acceder a una página segura en tu proxy Apache, este puede no estar configurado para manipular SSL. Necesitas dar instrucciones a Apache para que escuche desde el puerto 443 además de los otros puertos en los que habitualmente escucha:

Listen 80
Listen 443

Entonces queda fijado el proxy seguro en tu visualizador desde el puerto 443. Esto debería valer.

Si el proxy está enviando peticiones a otro proxy, puedes tener fijada la directiva ProxyRemote de otro modo. Aquí está mi configuración:

ProxyRemote http://nicklas:80/ http://proxy.mayn.franken.de:8080
ProxyRemote http://nicklas:443/ http://proxy.mayn.franken.de:443

Las peticiones sobre el puerto 80 de mi proxy nicklas son reenviadas a proxy.mayn.franken.de:8080, mientras que las peticiones sobre el puerto 443 son reenviadas a proxy.mayn.franken.de:443. Si el proxy remoto no está configurado para manipular el puerto 443, entonces la última directiva puede ser omitida. Las peticiones SSL solamente van sobre el primer proxy.

Advierte que Apache NO tiene que ser configurado para servir páginas seguras con SSL. El Proxy SSL es una cosa diferente que usar esto.



Apache HOWTO: documentación

Cómo: