Hosting para 2.0

Hola Miguel, yo te recomendaria desde un inicio usar Nginx como servidor
frontal y balanceador hacia tu cluster de servidores Mongrel, Nginx es
mucho
mas eficiente que Apache sirviendo recursos estaticos y ademas consume
mucho
menos recursos que Apache, lo vengo usando ya mas de un año y me va de
maravillas.

Saludos.

El día 8/04/08, Miguel Angel Calleja Lázaro [email protected]
escribió:

Ruben. D. escribió:

Hola Miguel, yo te recomendaria desde un inicio usar Nginx como
servidor frontal y balanceador hacia tu cluster de servidores Mongrel,
Nginx es mucho mas eficiente que Apache sirviendo recursos estaticos y
ademas consume mucho menos recursos que Apache, lo vengo usando ya mas
de un año y me va de maravillas.

Al final he instalado Apache con Mongrels para un proyecto, voy a probar
así de momento, para otro proyecto instalaré Nginx a ver qué tal,
gracias por la sugerencia. Ahora quería saber el por qué de tener
clusters, los balancermember:
<Proxy balancer://mongrel_cluster>
BalancerMember http://your.host.com:8000
BalancerMember http://your.host.com:8001
BalancerMember http://your.host.com:8002
BalancerMember http://your.host.com:8003
BalancerMember http://your.host.com:8004
BalancerMember http://your.host.com:8005
BalancerMember http://your.host.com:8006
BalancerMember http://your.host.com:8007

Por lo que he leido por ahí el Apache httpd hace como puerta de enlace
entre los usuarios y el cluster de Mongrel que recibe las peticiones y
las sirve. Ahora, quisiera saber el significado y el funcionamiento de
tener 2, 8 o X BalancerMember, qué quiere decir? que un cluster sirve
las peticiones y si no puede o porque se cae o por lo que sea, lo
intenta con otro cluster y así sucesivamente? De momento me he creado
dos, imagino que el tener muchos será por el tráfico que se tenga,
cuanto más tráfico más miembros.

Luego se puede configurar en config/mongrel_cluster.yml:

cwd: /home/demo/public_html/demo_net/subdomains/my_app
log_file: log/mongrel.log
port: “8000”
environment: development
address: 127.0.0.1
pid_file: tmp/pids/mongrel.pid
servers: 2

Lo que me he dado cuenta es que siguiendo las instrucciones de
slicehost, el environment lo tenía puesto en “production” y me estaba
corriendo la aplicación en producción, lo he cambiado a development.
Si mañana quiero poner en producción la aplicación debo cambiar el
environment del mongrel_cluster.yml a production y lo mismo con el
environment.rb?
ENV[‘RAILS_ENV’] ||= ‘production’

o sólo hace falta cambiar el environment de mongrel_cluster.yml? cómo lo
hago?

Gracias por vuestras aportaciones

Ruben. D. escribió:

otra cosa importante no porque tengas 500 mongrels tu aplicacion va a

En cuanto a cambiar de entorno de producción o desarrollo, no tiene
sentido tener en tu servidor de producción tu aplicacion en entorno
desarrollo, eso solo lo debes hacer en tu máquina local de
desarrollo, es por eso que con capistrano se crean los archivos de
configuración aisaldos en “shared/config/” y luego se hacen enlaces
simbólicos desde tu aplicacion (ln -s …), bueno tengo que empezar a
trabajar…

Saludos.

Muchísimas gracias por la aclaración, sobre lo del entorno de desarrollo
es que siempre los tengo online para probarlos y para que el cliente de
el visto bueno. Después lo paso a producción, entonces tengo la misma
aplicación en dos entornos, primero en desarrollo y luego la de
producción. La de desarrollo la dejaría para hacer cambios y cuando
tengo que subirlo a producción tengo que migrar base de datos, subir
ficheros, … No se si esta manera es óptima o cómo lo suele hacer la
gente, me resultaría de mucha ayuda opiniones respecto a ésto.

Hola Miguel, el proposito de tener un cluster de mongrels es poder
distribuir la carga que generan las peticiones de los usuarios, si por
ejemplo tienes un cluster de 2 mongrels, entonces llega una peticion de
un
usuario y se cogeria un mongrel, al llegar la peticion del segundo
usuario y
si el primero sigue ocupado entonces se mandaria la peticion al segundo
mongrel, es por eso que es necesario utilizar un cluster, ahora respecto
al
numero de mongrels a utilizar depende del tipo de aplicacion, por
ejemplo en
el caso de un blog, con 1 es suficiente para un comienzo ya que la
mayoria
de la data es estatica, depende del tipo de aplicacion la cantidad de
mongrels a utilizar, otra cosa importante no porque tengas 500 mongrels
tu
aplicacion va a tener mejor performance, llega un punto en que aumentar
mas
mongrels decrementa la performance, todo esto lo puedes medir haciendo
pruebas de rendimiento.

Tienes que tener en cuenta que tanto Apache como Nginx son mucho más
rapidos
que Mongrel sirviendo data estatica(javascript, css, imagenes, html,
etc),
por lo tanto tienes que asegurarte de que el contenido estatico estea
siendo
servido por Apache y las peticiones dinamicas sean pasadas a Mongrel,
por
ejemplo: Login, todas las operaciones CRUD, etc.

En cuanto a cambiar de entorno de producción o desarrollo, no tiene
sentido
tener en tu servidor de producción tu aplicacion en entorno desarrollo,
eso
solo lo debes hacer en tu máquina local de desarrollo, es por eso que
con
capistrano se crean los archivos de configuración aisaldos en
“shared/config/” y luego se hacen enlaces simbólicos desde tu aplicacion
(ln
-s …), bueno tengo que empezar a trabajar…

Saludos.

El día 8/04/08, Miguel Angel Calleja Lázaro [email protected]
escribió: