Hola lista, mi pregunta es cómo "sincronizar" no sé si será la palabra correcta, pero lo que quiero es saber cómo hacer que dos o más servidores webs acepten peticiones según el tráfico, por ejemplo el servidor 1 esta procesando datos y tiene mucha carga, el servidor 2 debe actuar como ayuda y también aceptar peticiones, el detalle es que se usa base de datos en un servidor y programción en php (supongo que los scripts php habrá que poner o estar en todos los servidores), no sé cómo podría hacer eso, estuve mirando algo en internet sobre rsync, pero más hablan sobre archivos. También había oído antes que eso se podría hacer con ntfs algo asi, pero no dieron detalles de cómo se podrían compartir datos de forma automática, que unos usuarios esten conectados a un servidor ingresando datos a una base de datos y otro servidor web ayude también haciendo lo mismo y escribiendo en alguna base de datos común. También dijeron que era algo similar a balanceo de carga, pero esa vez que vi un tutorial solo se hacia con datos estaticos, osea html, nada de programación y base de datos, ahí fue que escuché que hay que compartir de alguna manera con ntfs y no sé que más, estoy un poco falto es esa situación me podrían orientar amigos? de antemano les agradezco que me den pistas, se despide su amigo Edgar bye!
El 08/04/2014 10:19, Rodolfo Edgar escribió:
Hola lista, mi pregunta es cómo "sincronizar" no sé si será la palabra correcta, pero lo que quiero es saber cómo hacer que dos o más servidores webs acepten peticiones según el tráfico, por ejemplo el servidor 1 esta procesando datos y tiene mucha carga, el servidor 2 debe actuar como ayuda y también aceptar peticiones, el detalle es que se usa base de datos en un servidor y programción en php (supongo que los scripts php habrá que poner o estar en todos los servidores), no sé cómo podría hacer eso, estuve mirando algo en internet sobre rsync, pero más hablan sobre archivos. También había oído antes que eso se podría hacer con ntfs algo asi, pero no dieron detalles de cómo se podrían compartir datos de forma automática, que unos usuarios esten conectados a un servidor ingresando datos a una base de datos y otro servidor web ayude también haciendo lo mismo y escribiendo en alguna base de datos común. También dijeron que era algo similar a balanceo de carga, pero esa vez que vi un tutorial solo se hacia con datos estaticos, osea html, nada de programación y base de datos, ahí fue que escuché que hay que compartir de alguna manera con ntfs y no sé que más, estoy un poco falto es esa situación me podrían orientar amigos? de antemano les agradezco que me den pistas, se despide su amigo Edgar bye!
Lo que tu quieres es balanceo de carga. Se puede hacer de diferentes maneras, depende del presupuesto y de la carga que vaya a tener la web.
Una manera sencilla es hacerlo por DNS. Necesitarás dos servidores para la web (sincroniza los archivos de la web por NFS, GlusterFS o DRBD) y otro para la base de datos (esta en el servidor más potente ya que será atacada por los servidores web). Luego creas dos registros DNS con el mismo nombre pero que apuntan a cada uno de los dos servidores web:
www.ejemplo.com 10.111.123.120 www.ejemplo.com 10.111.123.121
El servidor DNS alternará sus respuestas con cada petición que reciba. No es el mejor método pero sirve. Cuando un servidor caiga tendrás un pequeño timeout y finalmente saltará al que está funcionando. Para solucionar esto implementa Hearbeat entre los dos servidores web para que cuando uno caiga el otro coja momentáneamente la IP del caído.
Otra solución para ahorrarte el tercer servidor (el de la base de datos) es configurar MySQL en modo replicación y poner en un servidor web el master de MySQL y en el otro el slave.
Finalmente también podrías añadir un proxy http (idealmente nginx) antes de los servidores web para balancear la carga. De paso acelerarías el tráfico ya que también haría de proxy. Para sitios con mucha carga este paso opcional sería deseable e incluso imprescindible.
Saludos.
yo uso LVS DR y sin problemas... :)
Date: Tue, 8 Apr 2014 18:41:45 +0200 From: fguitart@gmx.com To: centos-es@centos.org Subject: Re: [CentOS-es] Como "sincronizar" servidores web
El 08/04/2014 10:19, Rodolfo Edgar escribió:
Hola lista, mi pregunta es cómo "sincronizar" no sé si será la palabra correcta, pero lo que quiero es saber cómo hacer que dos o más servidores webs acepten peticiones según el tráfico, por ejemplo el servidor 1 esta procesando datos y tiene mucha carga, el servidor 2 debe actuar como ayuda y también aceptar peticiones, el detalle es que se usa base de datos en un servidor y programción en php (supongo que los scripts php habrá que poner o estar en todos los servidores), no sé cómo podría hacer eso, estuve mirando algo en internet sobre rsync, pero más hablan sobre archivos. También había oído antes que eso se podría hacer con ntfs algo asi, pero no dieron detalles de cómo se podrían compartir datos de forma automática, que unos usuarios esten conectados a un servidor ingresando datos a una base de datos y otro servidor web ayude también haciendo lo mismo y escribiendo en alguna base de datos común. También dijeron que era algo similar a balanceo de carga, pero esa vez que vi un tutorial solo se hacia con datos estaticos, osea html, nada de programación y base de datos, ahí fue que escuché que hay que compartir de alguna manera con ntfs y no sé que más, estoy un poco falto es esa situación me podrían orientar amigos? de antemano les agradezco que me den pistas, se despide su amigo Edgar bye!
Lo que tu quieres es balanceo de carga. Se puede hacer de diferentes maneras, depende del presupuesto y de la carga que vaya a tener la web.
Una manera sencilla es hacerlo por DNS. Necesitarás dos servidores para la web (sincroniza los archivos de la web por NFS, GlusterFS o DRBD) y otro para la base de datos (esta en el servidor más potente ya que será atacada por los servidores web). Luego creas dos registros DNS con el mismo nombre pero que apuntan a cada uno de los dos servidores web:
www.ejemplo.com 10.111.123.120 www.ejemplo.com 10.111.123.121
El servidor DNS alternará sus respuestas con cada petición que reciba. No es el mejor método pero sirve. Cuando un servidor caiga tendrás un pequeño timeout y finalmente saltará al que está funcionando. Para solucionar esto implementa Hearbeat entre los dos servidores web para que cuando uno caiga el otro coja momentáneamente la IP del caído.
Otra solución para ahorrarte el tercer servidor (el de la base de datos) es configurar MySQL en modo replicación y poner en un servidor web el master de MySQL y en el otro el slave.
Finalmente también podrías añadir un proxy http (idealmente nginx) antes de los servidores web para balancear la carga. De paso acelerarías el tráfico ya que también haría de proxy. Para sitios con mucha carga este paso opcional sería deseable e incluso imprescindible.
Saludos.
-- Francesc Guitart _______________________________________________ CentOS-es mailing list CentOS-es@centos.org http://lists.centos.org/mailman/listinfo/centos-es