30.3. Los módulos de Apache

Las funciones de Apache pueden expandirse mediante módulos. Por ejemplo, Apache es capaz de ejecutar scripts CGI en múltiples lenguajes de programación con ayuda de módulos. Aquí no se trata sólo de Perl y PHP, sino también de otros muchos lenguajes de scripts como Python o Ruby. Además existen módulos que posibilitan, entre otras muchas cosas, la transmisión segura de los datos (Secure Sockets Layer, SSL), la autenticación de usuarios, el registro ampliado, etc.

Si se dispone de los conocimientos necesarios, Apache puede ser adaptado a los requisitos y necesidades del usuario mediante módulos escritos por él mismo. La Sección 30.12.4, “Fuentes adicionales” le ofrece indicaciones para obtener información adicional.

Cuando Apache procesa una solicitud, se puede haber definido uno o varios gestores o “handlers” en el archivo de configuración para llevar a cabo ese proceso. Los gestores pueden formar parte de Apache o bien ser módulos activados para procesar la solicitud, por lo que el proceso puede configurarse de manera muy flexible. Además existe la posibilidad de integrar en Apache módulos propios para obtener un control aún mayor sobre la tramitación de solicitudes.

La modularización en Apache está muy acentuada. Aquí, el servidor se ocupa de un número muy reducido de tareas mientras que el resto se realiza a través de módulos. Esto se lleva a tal extremo que incluso el procesamiento de HTTP tiene lugar a través de módulos. Por lo tanto, Apache no debe ser necesariamente un servidor web; también puede asumir otras tareas muy distintas a través de módulos diferentes. Un ejemplo es el servidor de correo Proof-of-Concept (POP3) como módulo basado en Apache.

A continuación se describen algunas prestaciones muy útiles:

Máquinas virtuales (virtual hosts)

El soporte de máquinas virtuales significa que es posible manejar varias páginas web con una instancia de Apache en un único ordenador, si bien el servidor web se manifiesta como varios servidores web independientes de cara al usuario. Las máquinas virtuales pueden estar configuradas en distintas direcciones IP o “en función de los nombres”. Así se evita el tener que adquirir y administrar ordenadores adicionales.

Reescritura flexible de URLs

Apache ofrece múltiples posibilidades para manipular y reescribir URLs (URL rewriting). Puede encontrar información adicional en la documentación sobre Apache.

Negociación del contenido (content negotiation)

En función de las prestaciones del cliente (navegador), Apache puede proporcionar una página web a la medida de ese cliente. Por ejemplo, en el caso de navegadores antiguos o aquellos que trabajen sólo en modo texto (como por ejemplo Lynx), se entregará una versión simplificada de la página web sin tramas. Al proporcionar una versión de la página apropiada para cada navegador, es posible evitar la incompatibilidad entre muchos navegadores en lo que a JavaScript se refiere (si se quiere acometer la tarea de adaptar el código JavaScript para cada navegador).

Flexibilidad en el tratamiento de errores

Al producirse un fallo (por ejemplo una página no está disponible), es posible reaccionar de forma flexible y responder convenientemente. El modo de respuesta puede configurarse de forma dinámica por ejemplo mediante CGI.


SUSE LINUX Manual de administración 9.3