Admin Libre - Administración de sistemas y redes

httpd ya soporta compresión gzip y páginas de error personalizadas
Por Francisco Gaitán el 31 de Marzo de 2022

A partir de la versión 7.1, el servidor web de OpenBSD httpd(8) ya es capaz de servir páginas estáticas comprimidas con gzip y páginas de error personalizadas.

Desde hace un tiempo en la versión -current de OpenBSD ya es posible servir páginas de error personalizadas y enviar la versión comprimida en gzip de páginas estáticas.

Compresión gzip

Funciona de la siguiente manera: si el cliente acepta la codificación gzip y el archivo solicitado existe con en el sufijo adicional .gz y su fecha es más reciente, se envía el archivo comprimido indicando que usa codificación gzip.

Para activar la compresión gzip se usa la opción gzip-static dentro del bloque server:

server "example.com" {
   [...]
   gzip-static
   [...]
}

Si usas gzip(1) y rsync para subir los archivos que han cambiado es interesante usar el parámetro -n para evitar que gzip ponga una marca de tiempo en los archivos (por lo que cambian con cada compresión), y también el parámetro -k que mantiene el archivo original.

Páginas de error personalizadas

La configuración se realiza incluyendo la directiva errdocs directorio dentro del bloque server, siendo el directorio relativo al chroot. Por ejemplo:

server {
   [...]
   errdocs "/hterrors/example.com"
   [...]
}

Con esta configuración, cuando el servidor web de un error 404, en vez de mostrar la página de error por defecto mostraría los contenidos del archivo /var/www/hterrors/example.com/404.html y/o 404.html.gz. Esto se aplica de igual forma al resto de errores: 403, 418, 500, etc.

Se pueden incluir los siguientes códigos dentro del archivo HTML de la página de error, que serán reemplazados por los datos correspondientes por parte del servidor httpd:

  • $HTTP_ERROR es el texto correspondiente al error ocurrido
  • $RESPONSE_CODE es el código de error formado por tres dígitos
  • $SERVER_SOFTWARE el nombre del servidor web de httpd

Referencias

Destacado

Contacto

Si has encontrado algún error o quieres comentarme algo mándame un correo a webmaster@adminlibre.org