Características Principales
Requisitos de finalización
Características Principales
A continuación vamos a enumerar las principales características del servidor web Apache, algunas de las cuales ya hemos mencionado brevemente antes. Muchas de ellas serán vistas con mayor profundidad a lo largo del curso:
- Multiplataforma: Multitud de sistemas operativos tienen una versión disponible, a diferencia de IIS.
- Gestión avanzada de indexación y alias de directorios
- Negociación avanzada de los contenidos que gestiona el servidor: Se permite manipular los mismos antes o después de servirlos, prohibir determinados tipos de contenidos, etc.
- Sistema de notificación de errores HTTP altamente configurable.
- Ejecución SetUID de programas CGI: Ejecutar los programas bajo la identidad del usuario que deseemos, permitiendo así un mayor nivel de seguridad.
- Manejo de recursos avanzado para procesos hijo que sirven peticiones. Varios módulos de multiprocesamiento o MPM permiten adaptar el funcionamiento interno de Apache a las características de un sistema operativo o una necesidad concreta.
- Ocultación avanzada de la estructura física de las webs procesadas, mediante URL rewriting, usando mod_rewrite: Un mod complejo de Apache que permite manipular a nuestro antojo la URL de una web servida (http://httpd.apache.org/docs/2.0/misc/rewriteguide.html)
- Posibilidad de chequeo avanzado de sintaxis de la URL, incluyendo caracteres espurios que son fuentes frecuentes de ataques como SQL Injection, Command Injection, XSS, etc.
- Soporte para HTTP 1.1: Esta versión de HTTP permite a un browser mandar varias peticiones en paralelo a un servidor. Esta versión también está soportada por IIS y además hay que tener en cuenta lo siguiente:
- No se transmiten todas las cabeceras en cada una de las peticiones.
- Con HTTP 1.0, un browser debía esperar por la respuesta del servidor a una petición antes de mandar otra.
- HTTP 1.1 supone pues una ventaja de rendimiento, tanto por la economización a la hora de mandar información como por el hecho de no tener que soportar tantas esperas.
- Configuración simple y potente a través de ficheros:
- De forma estándar no podremos encontrar un GUI de administración, aunque si que existen algunas soluciones de terceros: http://www.webmin.com/
- El fichero de configuración principal es httpd.conf o apache2.conf según el sistema operativo. Es un fichero de texto con un formato sencillo y determinado.
- Es flexible, pudiendo mover partes de la configuración de Apache a diversos ficheros. Por ejemplo, se puede aislar la configuración de cada host virtual (cada web servida por Apache) en un archivo independiente para cada una, o bien distribuir la configuración de diferentes localizaciones físicas a ficheros independientes más pequeños y fáciles de manejar que se encuentren directamente en dichas localizaciones. No es necesario pues concentrar toda la configuración en un solo archivo de gran tamaño.
- De esta forma se evita que el fichero de configuración principal apache2.conf alcance un tamaño demasiado grande y por tanto sea más complejo de manejar.
- El término Virtual Host se refiere a la capacidad de simular la existencia de mantener más de un servidor en una misma máquina, cada uno sirviendo una web diferente, diferenciadas por su nombre de host o IP.
- Soporte avanzado de programas CGI (Common Gateway Interface) 1.1: A través de los módulos mod_cgi y mod_cgid
- Ofrece características avanzadas, como variables de entorno personalizadas y soporte para depuración de dichos programas.
- Se ofrece un mejor funcionamiento bajo threads.
- Soporte de FastCGI: Con mod_fcgi se puede crear un entorno FastCGI dentro de Apache y aumentar el rendimiento de estas aplicaciones. Anteriormente ya hemos hablado de esta tecnología de comunicación del servidor con programas que colaboran con él para cumplir alguna función, que como vemos también está soportada por Apache.
- Soporte para autenticación HTTP: Incluyendo autenticación Digest y Basic. Mediante módulos adicionales pueden implementarse autenticaciones que empleen bases de datos, ficheros, sentencias SQL o llamadas a programas externos sobre un mismo servido. Ejemplos:
- http://unixpapa.com/mod_auth_external/
- http://blog.innerewut.de/2007/6/26/apache-2-2-authentication-with-mod_authnz_external
- Servidor proxy integrado: Apache se puede convertir en un caching (forward) proxy server.
- Un forward proxy es un servidor intermedio que se sitúa entre el cliente y el servidor que tiene los contenidos (al que llamaremos O).
- Para obtener los contenidos de O, el cliente envía una petición al forward proxy, especificando O como el origen del contenido que busca.
- El forward proxy entonces pide el contenido a O y lo devuelve al cliente.
- El cliente debe estar especialmente configurado para soportar esto, ya que tiene que conectarse a través de dicho proxy en lugar de usando otros medios.
- Más información: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
- Log: Apache da una gran flexibilidad para configurar los logs y ver el status actual del servidor remotamente, con un navegador.
- Soporte de Server-Side Includes (SSI): Aumenta la flexibilidad del desarrollador web al permitir reutilizar código:
- También soportado por IIS
- Más información: http://en.wikipedia.org/wiki/Server_Side_Includes
- Soporte para Secured Socket Layer (SSL): Gracias a implementaciones como OpenSSL y el módulo mod_ssl.
Última modificación: sábado, 31 de julio de 2010, 00:52