Visión general de las nuevas funcionalidades de Apache 2.0 - Servidor HTTP Apache

Apache Server 2.0

<-

Visión general de las nuevas funcionalidades de Apache 2.0

Este documento describe algunas de las diferencias más importantes que existen entre las versiones 1.3 y 2.0 del Servidor HTTP Apache.

top

Principales Mejoras

Hebrado en Unix
En los sistemas Unix que soportan hebras POSIX, la nueva versión de Apache puede ejecutarse en modo híbrido multiproceso-multihebra. Esto mejora la escalabilidad para muchas aunque no para todas las configuraciones.
Nuevo sistema de configuración y compilación
El sistema de configuración y compilación ha sido escrito de nuevo desde cero para basarlo en autoconf y libtool. Esto hace que el sistema de configuración de Apache se parezca ahora más al de otros proyectos Open Source.
Soporte Multiprotocolo
La nueva versión tiene la infraestructura necesaria para servir distintos protocolos. Por ejemplo, se ha escrito el módulo mod_echo.
Soporte mejorado para las plataformas que no son tipo Unix
La versión 2.0 de Apache es más rápida y más estable en sistemas que no son tipo Unix, tales como BeOS, OS/2 y Windows, que la versión antigua. Con la introducción de módulos de multiprocesamiento (MPMs) específicos para cada plataforma y del Apache Portable Runtime (APR), estas plataformas tienen ahora implementada su propia API nativa, evitando las capas de emulación POSIX que provocan problemas y un bajo rendimiento.
Nueva interfaz de programación (API) de Apache
La API para los módulos ha cambiado significativamente en la nueva versión. Muchos de los problemas de ordención y prioridad de módulos de la versión 1.3 deben haber desaparecido. Apache 2.0 hace automaticamente mucho de lo que es necesario, y la ordenación de módulos se hace ahora por hooks, lo que ofrece una mayor flexibilidad. También se han añadido nuevas llamadas que ofrecen capacidades adicionales sin tener que parchear el núcleo del servidor Apache.
Soporte de IPv6
En los sitemas que soportan IPv6 con la libreria Apache Portable Runtime, Apache soporta IPv6 listening sockets por defecto. Además, las directivas Listen, NameVirtualHost, y VirtualHost soportan direcciones IPv6 numéricas (por ejemplo, "Listen [2001:db8::1]:8080").
Filtros
Los módulos de Apache pueden ahora escribirse para que se comporten como filtros que actúan sobre el flujo de contenidos tal y como salen del servidor o tal y como son recibidos por el servidor. Esto permite, por ejemplo, que el resultado de un script CGI sea analizado por las directivas Server Side Include usando el filtro INCLUDES del módulo mod_include. El módulo mod_ext_filter permite que programas externos actúen como filtros casi del mismo modo que los CGIs pueden actuar como handlers.
Mensajes de error en diferentes idiomas
Los mensajes de error que se envían a los navegadores están ahora disponibles en diferentes idiomas, usando documentos SSI. Estos mensajes pueden personalizarse por el administrador del sitio web para conseguir un look and feel coherente con el resto de los contenidos.
Configuración simplificada
Muchas directivas que podían inducir a confusión han sido simplificadas. Las directivas Port y BindAddress han desaparecido; para configurar la dirección IP en la que escucha el servidor ahora se usa únicamente la directiva Listen; la directiva ServerName especifica el nombre del servidor y el número del puerto solo para redirecionamiento y reconocimento de host virtual.
Soporte de Unicode Nativo para Windows NT
Apache 2.0 en Windows NT usa ahora utf-8 para la codificación de los nombres de fichero. Estos se mapean directamente al sistema de ficheros Unicode subyanciente, suministrando soporte para diferentes idiomas para todas instalaciones en Windows NT, includidos Windows 2000 y Windows XP. Este soporte no se extiende a Windows 95, 98 o ME, que continúan usando la codificación que tenga la máquina local para el acceso al sistema de archivos.
Actulización de la librería de expresiones regulares (regular expressions)
Apache 2.0 incluye la Librería de expresiones regulares compatibles de/con Perl (PCRE). Ahora, cuando se evalúan las expresiones tipo, se usa siempre la potente sintaxis de Perl 5.
top

Mejoras en los módulos

mod_ssl
Módulo nuevo en Apache 2.0. Este módulo es una interfaz para los protocolos de encriptado SSL/TLS de OpenSSL.
mod_dav
Módulo nuevo en Apache 2.0. Este módulo implementa la especificación del HTTP Distributed Authoring and Versioning (DAV) para colgar y mantener contenidos web.
mod_deflate
Módulo nuevo en Apache 2.0. Este módulo permite soportar nevagadores que requieren que el contenido sea comprimido antes de ser servido, ahorrando ancho de banda.
mod_auth_ldap
Módulo nuevo en Apache 2.0.41. Este módulo permite que se pueda usar una base de datos LDAP para almacenar las credenciales en la autentificación básica HTTP. El módulo de acompañamiento, mod_ldap ofrece connection pooling y cache de resultados.
mod_auth_digest
Incluye soporte adicional para cache de sesiones entre procesos usando memoria compartida.
mod_charset_lite
Módulo nuevo en Apache 2.0. Este módulo experimental permite for traducción o recodificación de sets de caracteres.
mod_file_cache
Módulo nuevo en Apache 2.0. Este módulo incluye la funcionalidad que mod_mmap_static tenía en Apache 1.3, e incorpora nuevas capacidades de cacheado.
mod_headers
Este módulo es mucho más flexible en Apache 2.0. Ahora puede modificar las cabeceras de las peticiones usadas por mod_proxy, y puede fijar condicionalmente cabeceras de respuesta.
mod_proxy
El módulo proxy ha sido completamente reescrito para aprovechar la nueva infraestructura de filtros y para implementar de una manera más fiable un proxy que cumpla con requerimientos de la especificación HTTTP/1.1. Además, se han incorporado nuevas secciones de configuración a la directiva <Proxy> que hacen mas fácil (e internamente más rápido) el control de los sitios web que usan proxys; las configuraciones de sobrecarga <Directory "proxy:..."> no se soportan. El módulo está ahora dividido en módulos específicos para cada protocolo, incluidos proxy_connect, proxy_ftp y proxy_http.
mod_negotiation
La nueva directiva ForceLanguagePriority se puede usar para asegurarse de que el cliente recibe siempre solo un documento, en lugar de obtener una respuesta de tipo NOT ACCEPTABLE o MULTIPLE CHOICES. Además, los algoritmos de negociación y MultiView han sido modificados para ofrecer resultados más consistentes y se ha incluido a nuevo tipo de correspondecia de tipos (type map).
mod_autoindex
Ahora pueden configurarse listados de directorios autoindexados para usar tablas HTML, darles formato de forma más sencilla, y permitir control detallado del ordenamiento, incluidos ordenamiento por versión, y filtrado usando caracteres comodines de los listados de directorios.
mod_include
Estas nuevas directivas permiten cambiar las etiquetas por defecto de comienzo y final para elementos SSI y permiten que la configuración de errores y el formato de la hora y la fecha se hagan en el fichero de configuración pricipal en lugar de en el documento SSI. Los resultados del análisis y la agrupación de las expresiones tipo (ahora basadas en la sintaxis de Perl 5) pueden ser devueltos usando las variables $0 .. $9 del módulo mod_include.
mod_auth_dbm
Ahora se soportan varias clases de bases de datos de tipo DBM usando la directiva AuthDBMType.