Versión 2.0 del Servidor HTTP Apache
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.
Consulte también
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
ylibtool
. 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
, yVirtualHost
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ódulomod_include
. El módulomod_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
yBindAddress
han desaparecido; para configurar la dirección IP en la que escucha el servidor ahora se usa únicamente la directivaListen
; la directivaServerName
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.
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, incluidosproxy_connect
,proxy_ftp
yproxy_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ódulomod_include
. mod_auth_dbm
- Ahora se soportan varias clases de bases de datos de tipo
DBM usando la directiva
AuthDBMType
.