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