miércoles, 13 de julio de 2011

Servidor HTTP Apache

Es un servidor web HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor "parcheado").
El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.

Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.

Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft3 ).

La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache.

Servidor web de distribución libre y de código abierto, siendo el más popular del mundo desde abril de 1996, con una penetración actual del 50% del total de servidores web del mundo (agosto de 2007).

La principal competencia de Apache es el IIS (Microsoft Internet Information Services) de Microsoft.

La aplicación permite ejecutarse en múltiples sistemas operativos como Windows, Novell NetWare, Mac OS X y los sistemas basados en Unix.


Ventajas

  • Modular
  • Código abierto
  • Multi-plataforma
  • Extensible
  • Popular (fácil conseguir ayuda/soporte)

Módulos

La arquitectura del servidor Apache es muy modular. El servidor consta de una sección core y diversos módulos que aportan mucha de la funcionalidad que podría considerarse básica para un servidor web.

Algunos de estos módulos son:

  • mod_ssl - Comunicaciones Seguras vía TLS.
  • mod_rewrite - reescritura de direcciones (generalmente utilizado para transformar páginas dinámicas como php en páginas estáticas html para así engañar a los navegantes o a los motores de búsqueda en cuanto a cómo fueron desarrolladas estas páginas).
  • mod_dav - Soporte del protocolo WebDAV (RFC 2518).
  • mod_deflate - Compresión transparente con el algoritmo deflate del contenido enviado al cliente.
  • mod_auth_ldap - Permite autentificar usuarios contra un servidor LDAP.
  • mod_proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat de páginas dinámicas en Java (servlets y JSP).

El servidor de base puede ser extendido con la inclusión de módulos externos entre los cuales se encuentran:


Uso

Apache es usado principalmente para enviar páginas web estáticas y dinámicas en la World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como ambiente de implantación a Apache, o que utilizarán características propias de este servidor web.

Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programación PHP/Perl/Python (y ahora también Ruby).

Este servidor web es redistribuido como parte de varios paquetes propietarios de software, incluyendo la base de datos Oracle y el IBM WebSphere application server. Mac OS X integra apache como parte de su propio servidor web y como soporte de su servidor de aplicaciones WebObjects. Es soportado de alguna manera por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es incluido con Novell NetWare 6.5, donde es el servidor web por defecto, y en muchas distribuciones Linux.

Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposición en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet.

 Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de documentos de Apache, desde donde pueden ser compartidos.

Los programadores de aplicaciones web a veces utilizan una versión local de Apache con el fin de previsualizar y probar código mientras éste es desarrollado.

Microsoft Internet Information Services (IIS) es el principal competidor de Apache, así como Sun Java System Web Server de Sun Microsystems y un anfitrión de otras aplicaciones como Zeus Web Server. Algunos de los más grandes sitios web del mundo están ejecutándose sobre Apache. La capa frontal (front end) del motor de búsqueda Google está basado en una versión modificada de Apache, denominada Google Web Server (GWS). Muchos proyectos de Wikimedia también se ejecutan sobre servidores web Apache.

Configuración

La mayor parte de la configuración se realiza en el fichero apache2.conf o httpd.conf, según el sistema donde esté corriendo. Cualquier cambio en este archivo requiere reiniciar el servidor, o forzar la lectura de los archivos de configuración nuevamente.

Licencia

La licencia de software bajo la cual el software de la fundación Apache es distribuido es una parte distintiva de la historia de Apache HTTP Server y de la comunidad de código abierto. La Licencia Apache permite la distribución de derivados de código abierto y cerrado a partir de su código fuente original.

La Free Software Foundation no considera a la Licencia Apache como compatible con la versión 2 de la GNU General Public License (GPL), en la cual el software licenciado bajo la Apache License no puede ser integrado con software distribuido bajo la GPL:

Este es software libre pero es incompatible con la GPL. La Apache Software License es incompatible con la GPL porque tiene un requerimiento específico que no está incluido en la GPL: tiene ciertos casos de terminación de patentes que la GPL no requiere. No consideramos que dichos casos de terminación de patentes son inherentemente una mala idea, pero a pesar de ello son incompatibles con la GNU GPL.

Sin embargo, la versión 3 de la GPL incluye una provisión (Sección 7e) que le permite ser compatible con licencias que tienen cláusulas de represalia de patentes, incluyendo a la Licencia Apache.

El nombre Apache es una marca registrada y puede ser sólo utilizada con el permiso expreso del dueño de la marca.



Historia de Apache

La primera versión del servidor web Apache fue desarrollada por Robert McCool, quien desarrollaba el servidor web NCSA HTTPd (National Center for Supercomputing Applications). Cuando Robert dejó el NCSA a mediados de 1994, el desarrollo de httpd se detuvo.

Robert McCool buscó otros desarrolladores para que lo ayudaran, formando el Apache Group. Algunos miembros del grupo original fueron Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters y Nicolas Pioch.

La versión 2 del servidor Apache fue una reescritura sustancial de la mayor parte del código de Apache 1.x, enfocándose en una mayor modularización y el desarrollo de una capa de portabilidad, el Apache Portable Runtime.

Apache 2.x incluyó multitarea en UNIX, mejor soporte para plataformas no Unix (como Windows), una nueva API Apache y soporte para IPv6.

La versión 2 estable de Apache, fue lanzada el 6 de abril de 2002.

Características de Apache

* Soporte para los lenguajes perl, python, tcl y PHP.

*Módulos de autenticación: mod_access, mod_auth y mod_digest.

*Soporte para SSL y TLS.

 *Permite la configuración de mensajes de errores personalizados y negociación de contenido.

* Permite autenticación de base de datos basada en SGBD.

Uso de Apache

Apache es principalmente usado para servir páginas web estáticas y dinámicas en la WWW. Apache es el servidor web del popular sistema XAMP, junto con MySQL y los lenguajes de programación PHP/Perl/Python. La "X" puede ser la inicial de cualquier sistema operativo, si es Windows: WAMP, si es el Linux: LAMP, etc.

El proceso para instalar Apache en Windows es muy sencillo. En adelante, es posible que la configuración del servidor pueda complicarse un poco, sin embargo, si deseamos utilizarlo con las funciones habituales, no hemos de tener mayores problemas en ningún momento.




Descarga de Apache

El servidor web Apache se puede descargar en la página de la Fundación Apache, en apache.org. En la URL http://httpd.apache.org/ tienen una sección en particular para el servidor HTTP (Protocolo de transmisión utilizado en la web), en la que tendremos que buscar el enlace para descarga.

Una vez en la página de descarga debemos buscar la última versión estable o la versión que recomendada. El servidor está disponible para sistemas Unix o Windows, por lo que nos ofrecerán diversas opciones de descarga, incluso para obtener el código fuente del programa. Si deseamos instalarlo en un sistema Windows, necesitamos obtener el archivo Win-32 Binary, que es un instalador Windows.

Instalación


Una vez descargado, debemos instalarlo en nuestro sistema, ejecutando el archivo obtenido. Daremos paso a un asistente que nos guiará en el proceso de instalación del servidor. Durante el proceso nos preguntará el nombre del dominio y del servidor, que podemos rellenar con "localhost". Nos pedirá también una dirección de correo, que podemos rellenar con cualquiera que deseemos. También nos pregunta si deseamos que el servidor responda en el puerto 80 para todos los usuarios o si deseamos que sólo se active para el usuario actual en el puerto 8080, cuando se inicie manualmente. Lo normal es que lo activemos para todos los usuarios.

Con estos datos queda configurado el Apache inicialmente. En cualquier momento podemos editarlos a nuestro gusto o necesidades. Para ello deberemos editar el fichero httpd.conf, que se encuentra en el directorio de instalación de Apache, que hemos indicado durante el proceso de instalación, más concretamente, en el subdirectorio configurado.


Una vez instalado, el Apache se pone en funcionamiento. Para controlar el Apache podemos encontrar en el botón de inicio, sección programas, un nuevo grupo llamado "Apache HTTP Server", con iconos para detener el servidor, ponerlo en marcha, editar el archivo de configuración httpd.conf o para ver los logs de acceso. También podemos ver en la barra de tareas un nuevo icono que indica que el Apache está funcionando y que ofrece opciones para controlarlo si pulsamos sobre él.



Ver si está funcionando



Para comprobar que el servidor está activo y funciona correctamente podemos abrir un explorador y probar a acceder a la URL http://localhost, que es nuestro propio servidor. Si todo ha ido bien observaremos el mensaje de bienvenida del servidor con algo como "Funciono! ¡El servidor Apache ha sido instalado en este equipo!".




Servicios de Internet Information Server (IIS)

Comenzaremos a instalar IIS. (Necesitaras el CD de instalación de Windows XP Profesional).

Para comenzar verificaremos que el IIS, este instalado en nuestra PC, y de no ser así, procederemos a instalarlo. Introducimos nuestro CD de instalación de Windows XP, y si acaso nos apareciera una ventana solicitando que deseamos hacer, la cerramos (Es posible iniciar la instalación desde dicha ventana, pero lo haré de esta forma para evitar la posibilidad de que si a alguien no le aparece, no sepa que hacer). Luego nos dirigimos al Panel de Control de windows y nos dirigimos a la opción Agregar o Quitar Programas.

De ahí nos vamos a la sección de Agregar o Quitar Componentes, y verificamos que la opción Servicios de Internet Información Server (IIS) esté seleccionada.


Si no es así, la seleccionamos y oprimimos el botón que dice Detalles, el cual nos servirá para seleccionar que componentes de IIS queremos instalar, en nuestro caso la dejaremos así como está.


Damos clic en Aceptar en la ventana de los Servicios de IIS y luego en Siguiente, en la ventana Asistente de Componentes de Windows.

Comienza la instalación de IIS, esto tardara algunos minutos.

Si todo ha salido bien (Estamos trabajando en Windows, así que esta observación, no está por demás) nos saldrá una ventana como esta


Damos clic en el botón Finalizar, y retiramos nuestro CD de la unidad. Ahora abrimos nuestro navegador web favorito, y tecleamos en la barra de dirección: http://localhost/ o la dirección IP http://127.0.0.1.

Nota: Algo muy importante, si tu navegador predeterminado es Internet Explorer, se te redireccionara a la dirección http://localhost/localstart.asp donde se te dará la bienvenida, y se abrirá un popup donde encontraras información del lenguaje ASP 3.0; si usas Firefox, Mozilla, Opera o Netscape, te aparecerá una ventana pidiendo un nombre de usuario y contraseña. Ignoremos esto, y nos dirigimos a donde estarán almacenados nuestros documentos, o sea, el directorio raíz del servidor, siendo la dirección referida c:\inetpub\wwwroot\ Ahí encontraremos dos archivos, iisstart.asp y localstart.asp, los cuales renombraremos a _iisstart.asp y _localstart.asp

Ahora, creamos un archivo de texto plano (Por ejemplo Bloc de Notas) y escribimos lo siguiente:

 <% Response.Write "Esta es mi primera pagina en ASP" %>

Nos vamos al menú Archivo y seleccionamos la opción Guardar como, y en la opción Nombre: tecleamos default.asp y en la opción Tipo: seleccionamos Todos los archivos de ahí nos dirigimos a nuestro navegador (Internet Explorer, Firefox, Mozilla, Netscape u Opera) y tecleamos nuevamente en la barra de direcciónhttp://localhost/ o http://127.0.0.1/ y nos deberá aparecer sin mayor problema el siguiente texto: Esta es mi primera pagina en ASP

Así concluimos la instalación de IIS, y ya tenemos un servidor capaz de soportar las versiones, ASP 1, ASP 2 y ASP 3.

No hay comentarios:

Publicar un comentario