You are on page 1of 33

Servidores Web

Apache vs. IIS


Una comparacin tcnica.

Yolif Arvelo
Carlos Castillo
William Gonzlez
Miguel Lurgi
Osiris Prez
Eduardo Ruiz
Agenda
Overview Apache
Funcionamiento Apache
Overview IIS
Funcionamiento - IIS
Comparacin Rendimiento
Comparacin - Popularidad
Comparacin Seguridad
Conclusiones
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
versin. 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 cdigo fuente. Modularidad. Costo.
Funcionamiento - Apache
Instalacin de Apache en Linux:
Binarios Cdigo Fuente
Ventajas Desventajas Ventajas Desventajas
Fcil Particular para Mxima Es
Instalacin cada plataforma Flexibilidad necesario
Incluye Pocas Opcin de poseer
Cdigo Fuente posibilidades de Configurar compilador
Fcil configuracin libremente correcto
Configuracin Usualmente se Se puede Proceso
consiguen en ajustar mas largo y
versiones libremente complejo
anteriores a la segn las
ms reciente. necesidades
Funcionamiento - Apache
Instalacin de binarios en linux
1. Bajar de www.apache.org/dist/binaries el
archivo tar.gz correspondiente a la plataforma
2. Descomprimir y desempaquetar el archivo
gunzip < apache_1.3.26-i386-linux.tar.gz | tar xvf

3. Ir al Directorio recin creado (Apache 1.3.26) y


ejecutar el script de instalacin (Como Root)
./ install.bindist.sh <directorio>

4. La instalacin se llevar a cabo en el directorio


mencionado o en /usr/local/apache por defecto
Funcionamiento - Apache
Instalacin de Apache Cdigo Fuente
1. 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 configuracin
./configure
3. Ejecutar make
4. Ejecutar make install
Funcionamiento - Apache
Ejecucin 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 seal
TERM al proceso padre, esto lo obliga a matar a los hijos
y luego a si mismo.
Funcionamiento - Apache
Configuracin
La configuracin de Apache se realiza mediante
directivas en archivos planos, el archivo principal
de configuracin 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 site
Adicionalmente, existen dos otros archivos de configuracin,
el srm.conf que maneja configuraciones para el manejo de
recursos en el filesystem como aliases, ndices, etc.
Tambin esta el access.conf que maneja control de acceso
Funcionamiento - Apache
La Herramienta Configure
Permite configuracin de apache por lnea 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
Funcionamiento - Apache
Modularidad
La distribucin de Apache 1.3 trae 44 mdulos
para su funcionamiento estndar, todos los
mdulos tienen por nombre mod_XXX. Se
pueden Agrupar en 12 Categoras.
Mdulos 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
Funcionamiento - Apache
Categoras de mdulos originales de
Apache
1. Core
2. Creacin de Ambientes
3. Decisiones de acuerdo al tipo de contenido
4. Mapeo de URL
5. Manejo de Directorios
6. Control de Acceso
7. Respuestas HTTP
8. Contenido Dinmico
9. Manejo de Contenido Interno
10. Logging
11. Miscelneos
Funcionamiento - Apache
Pginas Dinmicas bajo Apache
Surge CGI (Common Gateway Interface) como
primera solucin para la elaboracin de contenido
dinmico, mod_perl es una adicin para acelerar
los scripts CGI
CGI permite programar scripts en C/C++, Java, PCL y
muchos ms, pero el mas comn es Perl
Mod_cgi es el mdulo que maneja CGI y se encuentra
habilitado por defecto.
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

Define el directorio contentivo de los scripts


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
Funcionamiento - Apache
Virtual Hosts en Apache
Es 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>
Funcionamiento - Apache
Tips de Rendimiento para Apache:
1. La RAM es importantsima para el buen
funcionamiento del servidor, es preciso
utilizarla correctamente.
2. Evitar el swapping evitando que el numero de
usuarios se exceda, definir un mximo de
conexiones.
3. Evitar la negociacin de contenido
4. Si no se usa contenido dinmico, deshabilitar
la opcin.
Overview - IIS
Internet Information Services es el servidor web
de la familia Microsoft, la versin 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.
Funcionamiento IIS v5.0

Ventana Original Internet Information Services


Funcionamiento IIS v5.0
Ventana Web
Site
Aqu se describen
datos generales
del site como el
puerto a utilizar y
la direccin IP.
Funcionamiento IIS v5.0
Ventana
Performance
Detalles sobre la
configuracin
para el
rendimiento del
servidor.
Funcionamiento IIS v5.0
Ventana Home
Directory
Aqu se define el
directorio que se
utilizar como
root y otros
detalles de la
aplicacin.
Funcionamiento IIS v5.0
Ventana
Documents
Aqu se define la
pagina a ser
entregada
inicialmente
Funcionamiento IIS v5.0

Ventana Security Acceso y Autenticacin


Funcionamiento IIS v5.0

Ventana Security Acceso Annimo y Restricciones de IP


Funcionamiento IIS v5.0
Ventana HTTP
Headers
Aqu se definen
distintos headers
que el cliente
procesa para
diferentes
utilidades
Funcionamiento IIS v5.0
Ventana
Custom Errors
Aqu se definen
las pginas que
se muestran en
caso de error
Funcionamiento IIS v5.0
Contenido dinmico en IIS
El Soporte para ASP viene incluido en IIS, es
necesario definir los DSN (Data Source Name)
para que se efecte el contacto con la base de
datos.
Los archivos .asp son preprocesados y enviados
al cliente en forma html
Funcionamiento IIS v5.0
Mdulos en IIS
Pueden instalarse mdulos independientes en IIS
mediante la herramienta regsrv32, esta toma
archivos .dll y los registra, luego estos pueden
incluirse en el cdigo ASP.
Existen mdulos para integracin con algunas
herramientas de desarrollo como ColdFusion y
Front Page por un costo adicional.
Tambin se pueden adquirir mdulos para anti-
virus, load-balancing y paralelismo.
Comparacin -
Rendimiento

WebBench de Apache vs. IIS


Comparacin -
Rendimiento
Benchmark
realizado por un
instituto francs, 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.
Comparacin - Popularidad
Comparacin - Seguridad
El 90% de las vulnerabilidades de seguridad
explotadas por virus, gusanos y ataques DoS, estn
relacionados con IIS.
Microsoft no haba dado prioridad a corregir los
agujeros de seguridad de IIS hasta mediados del ao
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 opcin para SSL en su distribucin
original por evitar problemas legales.
Conclusiones
Apache IIS
Pros Pros
Proyecto Open Source bajo Fcil de utilizar
constante desarrollo Poco o nada de configuracin
Mucha informacin disponible necesaria
Soporte disponible por parte ASP sencillo de utilizar
de gran numero de
Soporte ODBC integrado
usuarios y comunidades a
nivel mundial Soporte FrontPage integrado
Perl Engine integrado ofrece Interfaz grafica
enlaces directos al API Disponibilidad de
ODBC disponible sin costo herramientas de desarrollo
Gran cantidad de opciones Mucha informacin disponible
Extensible
Conclusiones
Apache IIS
Contras Contras
Configuracin inicial Cualquier problema serio
necesaria. (crash) puede requerir
Perl Engine incrementa una reinstalacin del
considerablemente el servidor.
uso de memoria. Los mdulos y utilidades
La curva de aprendizaje adicionales deben ser
para uso efectivo del compradas.
servidor es muy Un objeto COM mal escrito o
empinada. un lazo infinito puede
matar al servidor.