servidores web apache vs. iis una comparación técnica. yolifé arvelo carlos castillo william...

33
Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Upload: amancio-russi

Post on 22-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Servidores WebApache vs. IIS

Una comparación técnica.

Yolifé ArveloCarlos Castillo

William GonzálezMiguel LurgiOsiris Pérez

Eduardo Ruiz

Page 2: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Agenda Overview – Apache Funcionamiento – Apache Overview – IIS Funcionamiento - IIS Comparación – Rendimiento Comparación - Popularidad Comparación – Seguridad Conclusiones

Page 3: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Overview – Apache/1.3.26 Apache 2.0 lanzado al mercado a mediados de abril

2002. Actualmente menos de 50.000 sites utilizan la nueva

versión. En contraste, mas de 10 millones de sites corren Apache/1.3.26.

Plataformas: NetBSD, Digital UNIX, AIX, OS/2, Windows 3.x, SCO, HPUX, Novell NetWare, Macintosh, Be OS, Windows NT, Linux, VMS, AS/400, Windows 95/98, FreeBSD, IRIX, Solaris.

Precio: Gratis. (puede bajarse de apache.org) Incluido en algunas distribuciones de linux.

Ventajas Principales: Cantidad de plataformas soportadas y disponibilidad de código fuente. Modularidad. Costo.

Page 4: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache Instalación de Apache en Linux:

Binarios Código Fuente

Ventajas•Fácil Instalación•Incluye Código Fuente•Fácil Configuración

Desventajas•Particular para cada plataforma•Pocas posibilidades de configuración•Usualmente se consiguen en versiones anteriores a la más reciente.

Ventajas•Máxima Flexibilidad•Opción de Configurar libremente•Se puede ajustar libremente según las necesidades

Desventajas•Es necesario poseer compilador correcto•Proceso mas largo y complejo

Page 5: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache Instalación de binarios en linux1. Bajar de www.apache.org/dist/binaries el

archivo tar.gz correspondiente a la plataforma2. Descomprimir y desempaquetar el archivo

gunzip < apache_1.3.26-i386-linux.tar.gz | tar xvf –

3. Ir al Directorio recién creado (Apache 1.3.26) y ejecutar el script de instalación (Como Root)./ install.bindist.sh <directorio>

4. La instalación se llevará a cabo en el directorio mencionado o en /usr/local/apache por defecto

Page 6: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache Instalación de Apache – Código Fuente1. Descomprimir y desempaquetar el archivo

gunzip < apache_1.3.26-i386-linux.tar.gz|tar xvf –

2. En el directorio de apache, ejecutar el script de configuración./configure

3. Ejecutar make4. Ejecutar make install

Page 7: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache Ejecución Daemon Apache

/usr/local/apache/bin/apachectl start

Apachectl es un script que facilita el uso de httpd con comandos sencillos como start y stop.

Se crea el proceso padre httpd que creara hijos para atender las peticiones de web.

Para terminar con el proceso httpd, se le envia una señal TERM al proceso padre, esto lo obliga a matar a los hijos y luego a si mismo.

Page 8: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache ConfiguraciónLa configuración de Apache se realiza mediante

directivas en archivos planos, el archivo principal de configuración es el httpd.conf

Este archivo consiste de una directiva por linea.Ej. DocumentRoot /usr/web Define cual será el directorio que alberga los archivos del

siteAdicionalmente, existen dos otros archivos de configuración,

el srm.conf que maneja configuraciones para el manejo de recursos en el filesystem como aliases, índices, etc. También esta el access.conf que maneja control de acceso

Page 9: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache La Herramienta ConfigurePermite configuración de apache por línea de

comando.Ejecutar configure sin argumentos, utiliza todos

los valores por defecto.Configure --help para ayuda con los comandos.Ej:./configure --prefix=/home/httpd --enable-

module=speling --disable-module=userdir

Page 10: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache ModularidadLa distribución de Apache 1.3 trae 44 módulos

para su funcionamiento estándar, todos los módulos tienen por nombre mod_XXX. Se pueden Agrupar en 12 Categorías.

Módulos adicionales pueden agregarse con la directiva

add-module en la herramienta configure.Ej: ./configure --prefix=/usr/local/apache --add-

module=/home/redes/mods/mod_sense.c

Page 11: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache Categorías de módulos originales de

Apache1. Core2. Creación de Ambientes3. Decisiones de acuerdo al tipo de contenido4. Mapeo de URL5. Manejo de Directorios6. Control de Acceso7. Respuestas HTTP8. Contenido Dinámico9. Manejo de Contenido Interno10. Logging11. Misceláneos

Page 12: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache Páginas Dinámicas bajo ApacheSurge CGI (Common Gateway Interface) como

primera solución para la elaboración de contenido dinámico, mod_perl es una adición para acelerar los scripts CGI

CGI permite programar scripts en C/C++, Java, PCL y muchos más, pero el mas común es Perl

Mod_cgi es el módulo que maneja CGI y se encuentra habilitado por defecto.

ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

Define el directorio contentivo de los scripts

Page 13: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache Directiva para manejar los scripts:AddHandler cgi-script .cgi .pl

o igualmente,<Directory "/usr/local/apache/cgi-bin/">

 Options ExecCGI AddHandler cgi-script   .cgi   .pl</Directory>

Otras opciones para Server Side Scripting son PHP, JSP o incluso ASP

Page 14: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache

Virtual Hosts en ApacheEs posible, configurar varios servidores en una

misma maquina para atender peticiones de varios sites.

Port 80 ServerName server.dominio.com NameVirtualHost 111.22.33.44 <VirtualHost 111.22.33.44> DocumentRoot /www/domain ServerName www.dominio.com ... </VirtualHost> <VirtualHost 111.22.33.44> DocumentRoot /www/subdominio ServerName www.sub.dominio.com ... </VirtualHost>

Page 15: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento - Apache Tips de Rendimiento para Apache:1. La RAM es importantísima para el buen

funcionamiento del servidor, es preciso utilizarla correctamente.

2. Evitar el swapping evitando que el numero de usuarios se exceda, definir un máximo de conexiones.

3. Evitar la negociación de contenido4. Si no se usa contenido dinámico, deshabilitar

la opción.

Page 16: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Overview - IIS Internet Information Services es el servidor web

de la familia Microsoft, la versión mas reciente es la 5, que viene incluida en Windows 2000 Server. Curiosamente, Windows XP no incluye IIS.

Plataformas: Windows NT, Windows 2000 Precio: Incluido en el NT Option Pack 4.0 (v.4.0),

Incluido en el Windows 2000 Server(v.5.0) Ventajas Principales: ASP, soporte para los APIs

de Microsoft, ODBC.

Page 17: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0

Ventana Original – Internet Information Services

Page 18: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0

Ventana “Web Site”

Aquí se describen datos generales del site como el

puerto a utilizar y la dirección IP.

Page 19: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0Ventana

“Performance”Detalles sobre la

configuración para el

rendimiento del servidor.

Page 20: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0

Ventana “Home Directory”

Aquí se define el directorio que se

utilizará como root y otros

detalles de la aplicación.

Page 21: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0

Ventana “Documents”

Aquí se define la pagina a ser entregada

inicialmente

Page 22: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0

Ventana “Security” – Acceso y Autenticación

Page 23: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0

Ventana “Security” – Acceso Anónimo y Restricciones de IP

Page 24: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0

Ventana “HTTP Headers”

Aquí se definen distintos headers

que el cliente procesa para

diferentes utilidades

Page 25: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0

Ventana “Custom Errors”Aquí se definen las páginas que se muestran en caso de error

Page 26: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0 Contenido dinámico en IISEl Soporte para ASP viene incluido en IIS, es

necesario definir los DSN (Data Source Name) para que se efectúe el contacto con la base de datos.

Los archivos .asp son preprocesados y enviados al cliente en forma html

Page 27: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Funcionamiento IIS v5.0 Módulos en IISPueden instalarse módulos independientes en IIS

mediante la herramienta regsrv32, esta toma archivos .dll y los registra, luego estos pueden incluirse en el código ASP.

Existen módulos para integración con algunas herramientas de desarrollo como ColdFusion y Front Page por un costo adicional.

También se pueden adquirir módulos para anti-virus, load-balancing y paralelismo.

Page 28: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Comparación - Rendimiento

WebBench de Apache vs. IIS

Page 29: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Comparación - Rendimiento

Benchmark realizado por un instituto francés, a diferencia de WebBench, este mide el rendimiento con 10.000 archivos de 4Kb. Por la cantidad de archivos, este benchmark tambien evalua la capacidad del servidor de manejar condiciones extremas.

Page 30: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Comparación - Popularidad

Popularidad de Web Servers Junio 2002

59,6728,69

2,06

1,73

7,85

ApacheIISZeusNetscapeOtros

Page 31: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Comparación - Seguridad El 90% de las vulnerabilidades de seguridad

explotadas por virus, gusanos y ataques DoS, están relacionados con IIS.

Microsoft no había dado prioridad a corregir los agujeros de seguridad de IIS hasta mediados del año pasado. El rendimiento ha sido su fuerte, para competir contra Apache.

Apache desde sus inicios ha dado principal importancia a la correctitud y seguridad de su servidor. El rendimiento es una segunda prioridad.

Apache no incluye opción para SSL en su distribución original por evitar problemas legales.

Page 32: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Conclusiones Apache

ProsProyecto Open Source bajo

constante desarrolloMucha información disponibleSoporte disponible por parte

de gran numero de usuarios y comunidades a nivel mundial

Perl Engine integrado ofrece enlaces directos al API

ODBC disponible sin costoGran cantidad de opcionesExtensible

IISPros

Fácil de utilizarPoco o nada de configuración

necesariaASP sencillo de utilizarSoporte ODBC integradoSoporte FrontPage integradoInterfaz graficaDisponibilidad de

herramientas de desarrolloMucha información

disponible

Page 33: Servidores Web Apache vs. IIS Una comparación técnica. Yolifé Arvelo Carlos Castillo William González Miguel Lurgi Osiris Pérez Eduardo Ruiz

Conclusiones Apache

ContrasConfiguración inicial

necesaria.Perl Engine incrementa

considerablemente el uso de memoria.

La curva de aprendizaje para uso efectivo del servidor es muy empinada.

IISContras

Cualquier problema serio (crash) puede requerir una reinstalación del servidor.

Los módulos y utilidades adicionales deben ser compradas.

Un objeto COM mal escrito o un lazo infinito puede matar al servidor.