httpd ya soporta compresión gzip y páginas de error personalizadas
Por admin 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