Cherokee

19
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

Transcript of Cherokee

Page 1: Cherokee

SERVIDOR WEB    CHEROKEE   

Leonardo Bernal BuenoAntonio Madrena Lucenilla

2 de Diciembre de 2011

Este obra está bajo una licencia de Creative Commons

Reconocimiento-NoComercial-CompartirIgual 2.5 España.

1

Page 2: Cherokee

Índice Introducción al servidor web Cherokee............................3

Instalación de Cherokee.........................................3

Configuración del servidor web...................................4

Virtual Hosting..................................................6

Autenticación y control de acceso...............................10

Autenticación Basic

Autenticación Digest

Autenticación PAM

Ejecución de scripts PHP........................................16

Estudio comparativo cherokee­apache.............................18

Conclusiones....................................................19

Bibliografía....................................................20

2

Page 3: Cherokee

Introducción al servidor web cherokeeLa 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 mysql­server mysql­client

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

Page 4: Cherokee

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 = 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

Page 5: Cherokee

b) Interfaz gráfica

Para 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 (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

Page 6: Cherokee

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

Page 7: Cherokee

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 [email protected] 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/sites­available/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

Page 8: Cherokee

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; cherokee­admin ­b para establecer una nueva conexión y administrar nuestro servidor web desde entorno gráfico.

8

Page 9: Cherokee

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

Page 10: Cherokee

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

Page 11: Cherokee

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

Page 12: Cherokee

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

Page 13: Cherokee

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

Page 14: Cherokee

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

Page 15: Cherokee

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 www­data 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

Page 16: Cherokee

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

Page 17: Cherokee

Podemos observar el php funcionando, creando un fichero info.php en cualquier destino de nuestro directorio /var/www

17

Page 18: Cherokee

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

Page 19: Cherokee

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