4 votos

Administrar simultáneamente múltiples servidores proxy de Apache (mod_proxy_balancer)

El frontend de mi aplicación web está formada actualmente por dos Apache servidores proxy inversos, utilizando mod_proxy_balancer para distribuir el tráfico a través de una serie de aplicación backend servidores. Tanto frontend de servidores proxy inversos, que se ejecutan en hosts independientes, son accesibles desde internet. DNS round robin distribuye el tráfico a través de ambos. En el futuro, el número de servidores proxy inversos es probable que crezca, ya que la aplicación web es muy ancho de banda pesada.

Mi pregunta es: ¿cómo puedo mantener el estado de ambos inversa equilibradores / apoderados en la sincronización?

Por ejemplo, para fines de mantenimiento, podría reducir la carga en uno de los backend appservers. Actualmente puedo hacer que al acceder a la herramienta de Administrador de formulario en la web en cada proxy, y el cambio de las reglas de distribución. Pero tengo que hacer que en cada proxy manual y asegúrese de que puedo entrar en la misma materia.

Es posible "enlace" varias instancias de mod_proxy_balancer? O es que hay una herramienta que se conecta a un número de instancias, y las actualizaciones de todos con la misma información?

Actualización: La herramienta debe recuperar el tiempo de ejecución estado y realizar cambios de ejecución, como la existente en el Equilibrador de Administrador, sólo para un número de proxies - no sólo para uno. Modificación de archivos de configuración no es lo que me interesa (ya que hay un montón de herramientas para que).

3voto

Nicolas Maupu Puntos 21

Recientemente escribí una herramienta para hacer lo que usted necesita. Si es demasiado tarde, espero que puede ser útil para alguien. Nombre del proyecto es ACM (Apache Cluster Manager) y está disponible en: http://code.google.com/p/apache-cluster-manager/

Nicolas Maupu

0voto

Kasper Holdum Puntos 4173

Hay un rubí nombre del módulo de Anfibios , lo cual facilita programática acceso a la herramienta de administrador de la interfaz web. Puede que no tenga todas las características que usted necesita, pero usted puede agregar o utilizarlo como un ejemplo para escribir una biblioteca similar en otro idioma. Aquí hay un ejemplo de script que se utiliza para habilitar o deshabilitar especificado por el usuario backend appservers en dos proxy equilibradores.

# amphibian_example.rb
require 'amphibian'

balancer_hosts = ["b1.example.com", "b2.example.com"]

command = ARGV.shift
backend_hosts = ARGV

balancer_hosts.each do |balancer_host|
    balancer_url = "http://#{balancer_host}/balancer-manager"
    balancer = Amphibian::BalancerManager.new(balancer_url)
    backend_hosts.each do |backend_host|
        backend_url = "http://#{backend_host}"
        if command == "enable"
            balancer.enable_host(backend_url)
            puts "Enabled #{backend_host} on #{balancer_host}"
        end
        if command == "disable"
            balancer.disable_host(backend_url)
            puts "Disabled #{backend_host} on #{balancer_host}"
        end
    end
end

Esto podría funcionar como

$ amphibian_example.rb disable a1.example.com a5.example.com
Disabled a1.example.com on b1.example.com
Disabled a5.example.com on b1.example.com
Disabled a1.example.com on b2.example.com
Disabled a5.example.com on b2.example.com

0voto

Antoine Benkemoun Puntos 5900

Como yo no sé de ninguna herramienta que permite hacer esto, mi acercamiento a este problema sería crear un script que va en cada servidor a través de SSH y hace las modificaciones que usted quiere que haga.

Esta podría ser una muy simple secuencia de comandos de Python, pero me imagino que otros lenguajes de scripting puede hacer esto más fácilmente. Me gustaría utilizar herramientas tales como la sed para hacer las modificaciones de texto.

Un mayor enfoque "racional" sería el uso de herramientas tales como Chef o títeres para gestionar estos archivos de configuración, pero no tengo experiencia con estos (no es una buena cosa !)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X