SERVIDOR WEB                 CHEROKEE                                     Leonardo Bernal Bueno           Antonio Madr...
ÍndiceIntroducción al servidor web Cherokee............................3Instalación de Cherokee..............................
Introducción al servidor web cherokeeLa finalidad de este documento es crear un manual donde explicar detalladamente lasfu...
Configuración de cherokeeLa administración de cherokee se puede hacer de dos formas: por consola o por interfaz gráfica.a)...
b) Interfaz gráficaPara hacer configuraciones mediante la interfaz gráfica, antes tenemos que ejecutar la instrucción“cher...
Una vez dentro, vemos la pantalla siguiente.Podemos observar una información detallada de la configuración del servidor, c...
3.- Creamos el directorios sites-available y sites-enable. Dentro de sites-available creamos unnuevo fichero llamado sitio...
8.- Si ejecutamos desde nuestro navegador www.sitio1.com/ entramos directamente a nuestrovirtual hosts con el mensaje de b...
2.- Accedemos con el nombre de usuario y contraseña a nuestra configuración de cherokee enentorno gráfico y nos vamos a la...
4.- Guardamos los cambios y reiniciamos el servicio. Agregamos en el fichero hosts la linea;       ip_servidor           w...
El formato de la herramienta htpasswd es la siguiente:htpasswd -c nombre_fichero usuarioUna vez creado, se le quita al com...
Desde la linea de comandos, podemos realizar la autenticación Basic incluyendo las siguienteslineas al fichero cherokee.co...
El formato de la herramienta htdigest es la siguiente:       htdigest -c nombre_fichero dominio usuarioUna vez creado, se ...
Una vez configurado tenemos que entrar en www.sitio1.com y nos pide el usuario y contraseña.Tenemos que entrar con uno de ...
Para que el servidor pueda verificar los nombres de usuarios y sus contraseñas, tenemos que agregarel fichero shadow al gr...
Ejecucición de Scripts PHPPara ejecutar un script en php tenemos que añadir un virtual hosting desde la consola gráfica. P...
Podemos observar el php funcionando, creando un fichero info.php en cualquier destino de nuestrodirectorio /var/www       ...
Estudio comparativo con Apache2En este apartado observaremos el comportamiento de cherokee comparándolo con apache.Empezam...
Con 50000 peticiones y 100 concurrentes pasa más o menos parecido. Cherokee al final le cuesta unpoco de trabajo, pero apa...
Upcoming SlideShare
Loading in …5
×

Cherokee

2,128 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,128
On SlideShare
0
From Embeds
0
Number of Embeds
239
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cherokee

  1. 1.   SERVIDOR WEB    CHEROKEE   Leonardo Bernal Bueno Antonio Madrena Lucenilla 2 de Diciembre de 2011Este obra está bajo una licencia de Creative CommonsReconocimiento-NoComercial-CompartirIgual 2.5 España. 1
  2. 2. ÍndiceIntroducción al servidor web Cherokee............................3Instalación de Cherokee.........................................3Configuración del servidor web...................................4Virtual Hosting..................................................6Autenticación y control de acceso...............................10 Autenticación Basic Autenticación Digest Autenticación PAMEjecución de scripts PHP........................................16Estudio comparativo cherokee­apache.............................18Conclusiones....................................................19Bibliografía....................................................20 2
  3. 3. Introducción al servidor web cherokeeLa finalidad de este documento es crear un manual donde explicar detalladamente lasfuncionalidades del servidor web cherokee.Cherokee es un servidor web multiplataforma, de licencia GNU, cuyo principal objetivo es serrá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 webInstalación de cherokeeQueremos instalar cherokee con php y mysql, por lo que tenemos que incluir los paquetesnecesarios en la instalación. Éstos son los paquetes mysql-admin y php5 con sus respectivasdependencias.Nota: El nombre de máquina FQDN debe estar definido correctamente en el fichero hosts.Primero instalamos mysql,#aptitude install mysql­server mysql­clientAhora instalamos el servidor web cherokee. Es un paquete que está en los repositorios oficiales, porlo que con aptitude se instala.#aptitude install cherokeeUna vez terminado el proceso de instalación ya tenemos el servidor web básico. Como no tieneinterfaz gráfica el servidor entramos desde el navegador de la máquina anfitriona. 3
  4. 4. Configuración de cherokeeLa administración de cherokee se puede hacer de dos formas: por consola o por interfaz gráfica.a) Consola textualLa 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 deconfiguració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 = www­data  → grupo efectivo • server!user = www­data → 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. 5. b) Interfaz gráficaPara hacer configuraciones mediante la interfaz gráfica, antes tenemos que ejecutar la instrucción“cherokee­admin   ­b” en una terminal. Este comando genera un nombre de usuario (pordefecto admin) y una contraseña aleatoria. Dejamos abierta la terminal con el comandoejecutá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 generael comando anterior. 5
  6. 6. Una vez dentro, vemos la pantalla siguiente.Podemos observar una información detallada de la configuración del servidor, como el directoriopor 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 quequeramos 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 Hostinga) Desde consola:Las directivas y ficheros de configuración para crear virtual hosts en cherokee son prácticamenteiguales 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 conun mensaje de bienvenida.2.- Asignamos permisos.#chmod ­R 755 sitio1 6
  7. 7. 3.- Creamos el directorios sites-available y sites-enable. Dentro de sites-available creamos unnuevo 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/sitio1ln ­s /etc/cherokee/sites­available/sitio15.- A continuación incluimos una linea al fichero hosts de nuestro cliente:10.0.0.5 www.sitio1.com6.- Reiniciamos el servicio /etc/init.d/cherokee restart7.- Editamos el fichero cherokee.confvserver!1!directory_index = sitio1/index.html 7
  8. 8. 8.- Si ejecutamos desde nuestro navegador www.sitio1.com/ entramos directamente a nuestrovirtual hosts con el mensaje de bienvenida que definimos nosotros en nuestro index.html:b) Desde entorno gráfico:1.- Ejecutamos desde el servidor; cherokee­admin ­b para establecer una nueva conexión yadministrar nuestro servidor web desde entorno gráfico. 8
  9. 9. 2.- Accedemos con el nombre de usuario y contraseña a nuestra configuración de cherokee enentorno gráfico y nos vamos a la pestaña vServers3.- Añadimos un Nuevo Servidor. – Nombre: www.vservers.com – Raiz de documentos: /var/www – Índices de Directorios: vservers/index.html 9
  10. 10. 4.- Guardamos los cambios y reiniciamos el servicio. Agregamos en el fichero hosts la linea; ip_servidor www.vservers.comAutenticación y Control de AccesoAUTENTICACION CON BASICPara autenticarnos por el método basic, en cherokee tenemos que acceder al panel de administracióncon 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. Senos 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 únicacaracterística que nos aparece “Mecanismo de validación” por fichero Htpasswd, y se nos abre otrasconfiguraciones.Además podemos añadir una lista de usuarios admitidos. Esta directiva es opcional, y por defecto sila dejamos en blanco permitiremos el acceso a los usuarios incluidos en el fichero basic.txt creadocon la herramienta htpasswd. 10
  11. 11. El formato de la herramienta htpasswd es la siguiente:htpasswd -c nombre_fichero usuarioUna 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 manoloEl 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. 12. Desde la linea de comandos, podemos realizar la autenticación Basic incluyendo las siguienteslineas 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 DIGESTPara autenticarnos por el método digest, en cherokee tenemos que acceder al panel deadministració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. Senos 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 únicacaracterística que nos aparece “Mecanismo de validación” por fichero htdigest, y se nos abre otrasconfiguraciones.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 ficherodigest.txt creado con la herramienta htdigest. 12
  13. 13. El formato de la herramienta htdigest es la siguiente: htdigest -c nombre_fichero dominio usuarioUna 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 manoloEl fichero queda así: 13
  14. 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 siguienteslineas 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 PAMEs 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. Senos 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 defectoes basic y asignamos el nombre del reino de nuestro recurso protegido (secret). 14
  15. 15. Para que el servidor pueda verificar los nombres de usuarios y sus contraseñas, tenemos que agregarel fichero shadow al grupo www-data, que es el grupo con el que trabaja nuestro servidor web.# adduser www­data shadowEntramos en www.sitio1.com y nos pide el usuario y contraseña. Tenemos que entrar con uno de losusuarios validados en nuestro equipo. 15
  16. 16. Ejecucición de Scripts PHPPara ejecutar un script en php tenemos que añadir un virtual hosting desde la consola gráfica. Paraello antes tenemos que instalar php5.#aptitude install php5Una vez instalado, entrar en el panel de control de cherokee, y en la pestaña vServers crear unonuevo.De todas las opciones, elegimos la de Lenguajes, y dentro de ella la de PHPSe nos habrirá una ventana nueva con información, donde pulsaremos en Siguiente. Nos pregunta elraí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. 17. Podemos observar el php funcionando, creando un fichero info.php en cualquier destino de nuestrodirectorio /var/www 17
  18. 18. Estudio comparativo con Apache2En 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 ungestor de contenidos wordpress.Ambos son equipos con las mismas características. Una CPU de un núcleo, 512 Mb de RAM y 8Gb de disco duro.La primera prueba de rendimiento se ha hecho con 5000 peticiones y 20 concurrentes. Se puedeobservar como cherokee las ha hecho rápido mientras apache se ha quedado al final un pocofrenado. 18
  19. 19. Con 50000 peticiones y 100 concurrentes pasa más o menos parecido. Cherokee al final le cuesta unpoco de trabajo, pero apache tarda más en resolverlas. Pero en ésta han estado un poco másigualados.Para las pruebas de memoria, hemos observado como cherokee usa menos memoria y apache vasubiendo el uso de memoria.ConclusionesCherokee es un servidor robusto, del que si se configura correctamente se le puede sacar bastantepartido. 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áspeticiones que otro servidor.Una de las desventajas que tiene es que si lo quieres configurar desde un entorno textual, tienes quetener amplios conocimientos, ya que todo se encuentra en un único fichero de configuración, conuna configuración específica de cherokee.Otra desventaja es la poca documentación que existe. Si entras en su web, tienen documentaciónsobre lo que puede hacer, pero no de cómo se hace ni como se podría implementar para diferentesplataformas.En resumen, cherokee puede ser usado como servidor web en aquellos lugares donde suadministrador tenga amplios conocimientos de la materia.Desde mi humilde experiencia, aconsejaría montar un servidor web con apache, ya que tiene ampliadocumentació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

×