Por qué Cherokee
Hace cosa de 6
meses que empecé a usar Cherokee en este servidor, y tenía pendiente comentar mi motivación para el cambio, porque hasta entonces venía usando Apache
con buenos resultados.
La instalación de OpenBSD de blackshell viene de Diciembre
de 2005
. Sí, eso es: se trata de un OpenBSD 3.8.
El soporte del fabricante se acabó en el 2006
, ya que suele ser 12
meses por entrega (mantienen siempre dos releases), y al tratarese de un sistema tipo BSD (monolítico, no con el esquema bazar de Linux
), resulta muy complicado de actualizar porque el núcleo está muy ligado a las aplicaciones de usuario, y lo mismo ocurre con los ports (aplicaciones extra que no cuentan como sistema base).
Por lo tanto la forma recomendada de pasar a una versión nueva es la reinstalación (sí, lo sé... poco conveniente, pero esto pasa también con algunas distribuciones de Linux
modernas; ni todo el monte es orégano, ni todas las distros son Debian
:P).
Si sumamos a eso que blackshell
sigue siendo un servidor casero, y que estoy lejos de casa desde hace unos años ya, no he tenido la oportunidad de actualizar :(.
Así que mi solución de compromiso es meter parches (que por otra parte es la forma de distribuir las correcciones en OpenBSD
), y mantener al día los servicios que están expuestos al exterior y pueden suponer un riesgo de seguridad.
Con la parte de los ports es relativamente sencillo, porque originalmente se instalan desde fuentes (se descarga el código, se aplican parches si es necesario, y se genera un paquete instalable). Pero, ¿qué pasa con httpd
?
- Es una versión de la rama
1.3.x
, con muchos parches propios deOpenBSD
(chroot
de casa, por ejemplo). - Al estar integrado en la base, los fuentes están en el árbol de fuentes del sistema, y no es posible ir a la web de
Apache
y bajar el fuente de la última versión (además, la rama1.3.x
ya no está soportada por la gente deApache
). - Tampoco es fácil de compilar, si queremos tener módulos como
mod_php
(lo que implica también pelearse conPHP
).
Así que estaba claro que, o me iba a la rama 2
de Apache
, o probaba otro servidor web (lo que implicaba cambios importantes, porque hasta el momento usaba mod_php
en este blog). Finalmente me decidí por la segunda opción, porque la máquina de blackshell
es modesta y una solución ligera parecía más adecuada, y así aprendemos cosas por el camino ;).
Ahí es donde entra Cherokee:
- El fuente es fácil de compilar (
./configure && make && make install
). En mi caso, corriendoOpenBSD
, solo utilizo las opciones especiales de:--disable-static --disable-nls --disable-pam
(además de ajustar las rutas para mi sistema). - La administración web es fantástica, e incluye asistentes y ayuda para correr
PHP
conFastCGI
(necesario, porqueCherokee
no tienemod_php
... claro). - Es ligero, mucho. ¿Cuánto? En este momento el proceso de
Cherokee
utiliza5 MB
de memoria, y si sumamos los procesos deFastCGI
(tengo un pool de4
), el coste total es de25 MB
. Cherokee
es muy rápido, pero además no he perdido ninguna de las funcionalidades que me dabaApache
, e incluso gano otras (como el keep-alive en elproxy HTTP
para ln.usebox.net, ¡genial!).
Además sigo las actualizaciones, de forma que tengo un servicio siempre al día, aunque sea en un sistema legacy.
Desde luego que estos comentarios son bastante específicos (OpenBSD
, un servidor casero), y no creo que todos sean en general aplicables a todas las situaciones, pero con destacar la ventaja de tener un servicio moderno y actualizado en un sistema heredado que lleva 4
años sin soporte oficial, ya creo que es suficiente.
Hay 4 comentarios
"Por lo tanto la forma recomendada de pasar a una versión nueva es la reinstalación (sí, lo sé... poco conveniente, pero esto pasa también con algunas distribuciones de Linux modernas; ni todo el monte es orégano, ni todas las distros son Debian :P)."
Tienes mas opciones, aparte de reinstalar:
- Puedes seguir -current (si si, lo se, no es la rama "estable" de nombre, pero no suele dar problemas), y ahi es cvs update y recompilar kernel y userland
- Puedes reiniciar con el kernel bsd.rd, acceder a la maquina remotamente por ssh y hacer un (U)pgrade pillando los packs base directamente de Internet por FTP/HTTP. Esto es mas parecido a reinstalar y esta soportado entre releases (cuidao con hacer esto de la 3.8 a la 4.6, que ahi lo mas probable es que pete todo)
Sin duda el estar tan lejos puede ser un problema si algo sale mal, pero el hecho de que siga funcionando indica que la 3.8 es lo suficientemente estable tambien, no? ;)
El primer caso, seguir -current, no sé si es lo suficientemente estable para un servidor (aunque sea casero).
El segundo caso es "la opción(tm)", pero da algo de cosa, ¿no? :D Es lo mismo que reinstalar, pero pasando por el suplicio del mergemaster ;)
De todas formas, ¿los upgrades aplican a los ports? Hice upgrade un par de veces, y recuerdo que tuve que desinstalar los paquetes e instalar las versiones nuevas :'(
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.
por funky, en 2010-05-23 13:58:19 ∞