Proyecto integrador. Las TIC en la sociedad S4.pptx
Cherokee
1. SERVIDOR WEB
CHEROKEE
Leonardo Bernal Bueno
Antonio Madrena Lucenilla
2 de Diciembre de 2011
Este obra está bajo una licencia de Creative Commons
Reconocimiento-NoComercial-CompartirIgual 2.5 España.
1
3. Introducción al servidor web cherokee
La finalidad de este documento es crear un manual donde explicar detalladamente las
funcionalidades del servidor web cherokee.
Cherokee es un servidor web multiplataforma, de licencia GNU, cuyo principal objetivo es ser
rápido y funcional, sin dejar de ser fácil su instalación y su posterior administración.
Soporta tecnologías como:
• FastCGI, SCGI, PHP, CGI, SSI, SSL/TLS
• Virtual Hosting
• Redirecciones
• Balanceadores de carga
• Administración mediante interfaz web
• Market de instalación de aplicaciones web
Instalación de cherokee
Queremos instalar cherokee con php y mysql, por lo que tenemos que incluir los paquetes
necesarios en la instalación. Éstos son los paquetes mysql-admin y php5 con sus respectivas
dependencias.
Nota: El nombre de máquina FQDN debe estar definido correctamente en el fichero hosts.
Primero instalamos mysql,
#aptitude install mysqlserver mysqlclient
Ahora instalamos el servidor web cherokee. Es un paquete que está en los repositorios oficiales, por
lo que con aptitude se instala.
#aptitude install cherokee
Una vez terminado el proceso de instalación ya tenemos el servidor web básico. Como no tiene
interfaz gráfica el servidor entramos desde el navegador de la máquina anfitriona.
3
4. Configuración de cherokee
La administración de cherokee se puede hacer de dos formas: por consola o por interfaz gráfica.
a) Consola textual
La forma menos usual de administrar el servidor es mediante la consola de texto.
El principal fichero de configuración es cherokee.conf, donde aparecen las directivas de
configuración.
Las directivas más importantes son las siguientes:
• server!bind!1!port = 80 → Escuchar en un puerto TCP. # Es un número secuencial
desde muchos puertos se puede escuchar a la vez.
• server!bind!#!tls = 80 → si el puerto se escucha para HTTPS
• server!group = wwwdata → grupo efectivo
• server!user = wwwdata → usuario efectivo
• server!ipv6 → si permite la conexion con Ipv6
• vserver!2!directory_index = vservers/index.html → Lista de cadenas: los índices
de Directory
• vserver!2!document_root = /var/www → Ruta del documento raíz
• vserver!2!nick = www.vservers.com → El nombre del servidor virtual
• vserver!1!error_writer!filename = /var/log/cherokee/cherokee.error →
especifica los errores producidos.
4
5. b) Interfaz gráfica
Para hacer configuraciones mediante la interfaz gráfica, antes tenemos que ejecutar la instrucción
“cherokeeadmin b” en una terminal. Este comando genera un nombre de usuario (por
defecto admin) y una contraseña aleatoria. Dejamos abierta la terminal con el comando
ejecutándose, y desde el cliente entramos al navegador a la dirección
“http://ip_servidor:9090” donde nos pide el nombre de usuario y contraseña que genera
el comando anterior.
5
6. Una vez dentro, vemos la pantalla siguiente.
Podemos observar una información detallada de la configuración del servidor, como el directorio
por defecto (/var/www), fichero de configuración, última vez modificado...
En la parte superior nos ofrece un menú con las opciones de configuración, dependiendo lo que
queramos hacer.
En la pestaña Estado, podemos observar la monitorización del servidor. Para poder utilizarlo,
tenemos que habilitar el colector de actividad (tan fácil como pulsar en el enlace).
Virtual Hosting
a) Desde consola:
Las directivas y ficheros de configuración para crear virtual hosts en cherokee son prácticamente
iguales a las de apache2.
Por defecto muchos de los directorios no están creados por lo cual, los creamos nosotros mismos:
1.- Creamos un directorio dentro de /var/www llamado sitio1 y dentro un fichero index.html con
un mensaje de bienvenida.
2.- Asignamos permisos.
#chmod R 755 sitio1
6
7. 3.- Creamos el directorios sites-available y sites-enable. Dentro de sites-available creamos un
nuevo fichero llamado sitio1 e incluimos en él las directivas para nuestro virtual hosting:
<VirtualHost *:80>
ServerAdmin usuario@sitio1.com
ServerName www.sitio1.com
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/sitio1>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
4.- Entramos en sites-enable y creamos un enlace simbólico de /etc/cherokee/sites-available/sitio1
ln s /etc/cherokee/sitesavailable/sitio1
5.- A continuación incluimos una linea al fichero hosts de nuestro cliente:
10.0.0.5 www.sitio1.com
6.- Reiniciamos el servicio /etc/init.d/cherokee restart
7.- Editamos el fichero cherokee.conf
vserver!1!directory_index = sitio1/index.html
7
8. 8.- Si ejecutamos desde nuestro navegador www.sitio1.com/ entramos directamente a nuestro
virtual hosts con el mensaje de bienvenida que definimos nosotros en nuestro index.html:
b) Desde entorno gráfico:
1.- Ejecutamos desde el servidor; cherokeeadmin b para establecer una nueva conexión y
administrar nuestro servidor web desde entorno gráfico.
8
9. 2.- Accedemos con el nombre de usuario y contraseña a nuestra configuración de cherokee en
entorno gráfico y nos vamos a la pestaña vServers
3.- Añadimos un Nuevo Servidor.
– Nombre: www.vservers.com
– Raiz de documentos: /var/www
– Índices de Directorios: vservers/index.html
9
10. 4.- Guardamos los cambios y reiniciamos el servicio. Agregamos en el fichero hosts la linea;
ip_servidor www.vservers.com
Autenticación y Control de Acceso
AUTENTICACION CON BASIC
Para autenticarnos por el método basic, en cherokee tenemos que acceder al panel de administración
con el usuario y contraseña obtenidos del comando “cherokee-admin -b”.
Entramos en la pestaña superior vServers y seleccionamos uno de los sitios creados anteriormente.
Para el ejemplo, seleccionamos www.sitio1.com, y abajo pulsamos en administración de reglas. Se
nos abrirá otra ventana donde tenemos que seleccionar la pestaña Seguridad.
Ahora es cuando elegimos el método a usar. En la sección autenticación cambiamos la única
característica que nos aparece “Mecanismo de validación” por fichero Htpasswd, y se nos abre otras
configuraciones.
Además podemos añadir una lista de usuarios admitidos. Esta directiva es opcional, y por defecto si
la dejamos en blanco permitiremos el acceso a los usuarios incluidos en el fichero basic.txt creado
con la herramienta htpasswd.
10
11. El formato de la herramienta htpasswd es la siguiente:
htpasswd -c nombre_fichero usuario
Una vez creado, se le quita al comando el parámetro “-c” ya que sirve para crear el fichero.
htpasswd nombre_fichero usuario
htpasswd c /etc/cherokee/basic.txt carolina
htpasswd /etc/cherokee/basic.txt manolo
El fichero queda así:
Una vez configurado tenemos que entrar en www.sitio1.com y nos pide el usuario y contraseña.
Tenemos que entrar con uno de los usuarios creados anteriormente.
11
12. Desde la linea de comandos, podemos realizar la autenticación Basic incluyendo las siguientes
lineas al fichero cherokee.conf:
vserver!2!rule!1!auth = htpasswd
vserver!2!rule!1!auth!methods = basic
vserver!2!rule!1!auth!passwdfile = /etc/cherokee/basic.txt
vserver!2!rule!1!auth!realm = secret
AUTENTICACIÓN CON DIGEST
Para autenticarnos por el método digest, en cherokee tenemos que acceder al panel de
administración con el usuario y contraseña obtenidos del comando “cherokee-admin -b”.
Entramos en la pestaña superior vServers y seleccionamos uno de los sitios creados anteriormente.
Para el ejemplo, seleccionamos www.sitio1.com, y abajo pulsamos en administración de reglas. Se
nos abrirá otra ventana donde tenemos que seleccionar la pestaña Seguridad.
Ahora es cuando elegimos el método a usar. En la sección autenticación cambiamos la única
característica que nos aparece “Mecanismo de validación” por fichero htdigest, y se nos abre otras
configuraciones.
Con en el método Basic, podemos añadir una lista de usuarios admitidos. Esta directiva es opcional,
y por defecto si la dejamos en blanco permitiremos el acceso a los usuarios incluidos en el fichero
digest.txt creado con la herramienta htdigest.
12
13. El formato de la herramienta htdigest es la siguiente:
htdigest -c nombre_fichero dominio usuario
Una vez creado, se le quita al comando el parámetro “-c” ya que sirve para crear el fichero.
htpasswd nombre_fichero usuario
htdigest c /etc/cherokee/digest.txt dominio carolina
htdigest /etc/cherokee/digest.txt dominio manolo
El fichero queda así:
13
14. Una vez configurado tenemos que entrar en www.sitio1.com y nos pide el usuario y contraseña.
Tenemos que entrar con uno de los usuarios creados anteriormente.
Desde la linea de comandos, podemos realizar la autenticación Digest incluyendo las siguientes
lineas al fichero cherokee.conf:
vserver!2!rule!1!auth = htdigest
vserver!2!rule!1!auth!methods = digest
vserver!2!rule!1!auth!passwdfile = /etc/cherokee/digest.txt
vserver!2!rule!1!auth!realm = dominio
AUTENTICACIÓN PAM
Es un mecanismo el cual requiere de un usuario válido en el sistema.
Accedemos al panel de administración con el usuario y contraseña obtenidos del comando
“cherokee-admin -b”.
Entramos en la pestaña superior vServers y seleccionamos uno de los sitios creados anteriormente.
Para el ejemplo, seleccionamos www.sitio1.com, y abajo pulsamos en administración de reglas. Se
nos abrirá otra ventana donde tenemos que seleccionar la pestaña Seguridad.
Elegimos el mecanismo de autentificación a utilizar, en este caso PAM, el método que por defecto
es basic y asignamos el nombre del reino de nuestro recurso protegido (secret).
14
15. Para que el servidor pueda verificar los nombres de usuarios y sus contraseñas, tenemos que agregar
el fichero shadow al grupo www-data, que es el grupo con el que trabaja nuestro servidor web.
# adduser wwwdata shadow
Entramos en www.sitio1.com y nos pide el usuario y contraseña. Tenemos que entrar con uno de los
usuarios validados en nuestro equipo.
15
16. Ejecucición de Scripts PHP
Para ejecutar un script en php tenemos que añadir un virtual hosting desde la consola gráfica. Para
ello antes tenemos que instalar php5.
#aptitude install php5
Una vez instalado, entrar en el panel de control de cherokee, y en la pestaña vServers crear uno
nuevo.
De todas las opciones, elegimos la de Lenguajes, y dentro de ella la de PHP
Se nos habrirá una ventana nueva con información, donde pulsaremos en Siguiente. Nos pregunta el
raíz de documentos; aquí pondremos /var/www y pulsamos Siguiente.
Y en la nueva y última ventana, ponemos en las opciones lo siguiente. Nuevo nombre de host “php”
y en los mismos registros que “default (combinado)”.
16
17. Podemos observar el php funcionando, creando un fichero info.php en cualquier destino de nuestro
directorio /var/www
17
18. Estudio comparativo con Apache2
En este apartado observaremos el comportamiento de cherokee comparándolo con apache.
Empezamos con el rendimiento.
Ayudándonos del comando ab hemos hecho peticiones a los servidores, que tienen instalados un
gestor de contenidos wordpress.
Ambos son equipos con las mismas características. Una CPU de un núcleo, 512 Mb de RAM y 8
Gb de disco duro.
La primera prueba de rendimiento se ha hecho con 5000 peticiones y 20 concurrentes. Se puede
observar como cherokee las ha hecho rápido mientras apache se ha quedado al final un poco
frenado.
18
19. Con 50000 peticiones y 100 concurrentes pasa más o menos parecido. Cherokee al final le cuesta un
poco de trabajo, pero apache tarda más en resolverlas. Pero en ésta han estado un poco más
igualados.
Para las pruebas de memoria, hemos observado como cherokee usa menos memoria y apache va
subiendo el uso de memoria.
Conclusiones
Cherokee es un servidor robusto, del que si se configura correctamente se le puede sacar bastante
partido. Es fácil de utilizar, aunque la mayoría de configuraciones se hacen desde la interfaz web,
cosa poco probable en un entorno de producción.
Otro motivo por el que es el uso de memoria. Usa menos memoria que apache, y responde más
peticiones que otro servidor.
Una de las desventajas que tiene es que si lo quieres configurar desde un entorno textual, tienes que
tener amplios conocimientos, ya que todo se encuentra en un único fichero de configuración, con
una configuración específica de cherokee.
Otra desventaja es la poca documentación que existe. Si entras en su web, tienen documentación
sobre lo que puede hacer, pero no de cómo se hace ni como se podría implementar para diferentes
plataformas.
En resumen, cherokee puede ser usado como servidor web en aquellos lugares donde su
administrador tenga amplios conocimientos de la materia.
Desde mi humilde experiencia, aconsejaría montar un servidor web con apache, ya que tiene amplia
documentación y bastante implementación de los usuarios.
Bibliografía
• Documentación de HowToForge.com
• Google
• cherokee-project.com
• Documentación de cherokee-project
19