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.
- 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 [fe80::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.
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
.