Archivo

Archivo para la categoría ‘Servidor web’

ApacheCaseInsensitive

Jueves, 9 de junio de 2011

Creación de alias y redirecciones en Apache sin distinguir entre mayúsculas y minúsculas

El servidor web Apache distingue entre mayúsculas y minúsculas a la hora de crear alias y redirecciones. Sin embargo, existe una forma de que no tenga en cuenta esto. En el caso de las redirecciones lo haríamos con la siguiente directiva de configuración:

RedirectMatch permanent (?i)^/alias http://otro-host/otro-alias

Para el caso de los alias sería de la siguiente forma:

AliasMatch  (?i)^/alias /some-dir

Apache , ,

http-load

Jueves, 27 de mayo de 2010

HTTP-LOAD: Sencilla utilidad de test de servidores web

http_load es una sencilla herramienta que nos permite testear el rendimiento de servidores web. Permite lanzar el testeo contra una serie de URLs definidas en un fichero de forma aleatoria. Es capaz de lanzar múltiples peticiones en paralelo.

La utilidad está escrita en C y hay que compilarla. Para ello simplemente nos descargamos el código fuente, lo descomprimimos y ejecutamos make.

Una vez compilada la ejecutamos con algo similar a:

# ./http_load -parallel 5 -seconds 10 urls.txt

(ejecutar sin parámetros para ver las opciones disponibles)

Esto hará que se lancen 5 peticiones de forma paralela, durante 10 segundos contra las URLs definidas en el fichero urls.txt (se lanzaran de forma aleatoria).

Servidor web , ,

Error Segmentation fault en Apache 2.2

Jueves, 4 de febrero de 2010

A veces en el fichero error_log del Apache nos puede aparecer un mensaje como el siguiente:

[Thu Feb 04 15:23:42 2010] [notice] child pid 1241 exit signal Segmentation fault (11)

Revisando el fichero error_log y el access_log no encontramos más información sobre la posible causa del error. Para obtener más información lo que podemos hacer es activar los core dumps en el Apache. Para ello añadiremos al fichero de configuración la directiva:

CoreDumpDirectory /var/tmp

En esta directiva le indicamos el directorio donde guardar los dumps. Deberá ser un directorio escribible por el usuario con el que se ejecuta Apache (apache, nobody,…). Ahora se reinicia el servidor Apache.

Cuando se produzca el error, se nos debería generar un fichero /var/tmp/core.nnnn

Para poder analizar este fichero podemos usar un programa como gdb (the GNU project debugger).

# gdb /usr/sbin/httpd core.nnnn

Al ejecutar este comando obtendremos información sobre el error y con un poco de suerte podremos averiguar que biblioteca ha sido la causante del error.

Apache , , , ,

Problema con mod_deflate e Internet Explorer 6

Martes, 30 de junio de 2009

En estos últimos días me he encontrado con el siguiente problema. Al acceder a unas determinadas páginas web con Explorer 6, la página web se quedaba a media cargar y el navegador se quedaba colgado durante 5 minutos. Una vez pasado este tiempo, se mostraba la página (aunque había que recargar algunas imágenes).

Revisando la página en cuestión observe que se componía de varías ficheros CSS y javascript externos, además del HTML. También incluía un ActiveX. Al ver como se cargaban estos ficheros externos, se podía observar como algunos de ellos eran pedidos al servidor de manera rápida, pero en un momento dado (no siempre en el mismo fichero), el navegador dejaba de pedir ficheros y se quedaba como colgado.

Al actualizar un ordenador que daba problemas a Explorer 7, el problema se solucionaba y funcionaba correctamente. Al desinstalar el Explorer 7 el problema se reproducía.

Después de mirar muchas cosas, al final revisando la configuración del Apache, me dí cuando de que recientemente se había activado el mod_deflate para mejorar el rendimiento del servidor. Las líneas que se habían usado para hacer esto eran:

LoadModule deflate_module modules/mod_deflate.so
AddOutputFilterByType DEFLATE text/css application/x-javascript

Al desactivar estas líneas, los equipos que daban problemas volvían a funcionar con normalidad. En mi caso, como son reglas para optimizar rendimiento (no impiden que funcionen cosas) y como el navegador para el que tienen que funcionar es Explorer 6, con dejar deshabilitadas estas reglas ha sido suficiente para resolver el problema.

Revisando información por internet, no he encontrado nuestro caso concreto, pero si problemas similares con mod_deflate e Internet Explorer 6 y varios comentarios de la gente indicando como desactivar el mod_deflate para el Explorer 6, dejándolo activo para otros navegadores.

Apache, Windows ,