Module: BalancingProxy::Server

Defined in:
lib/galerab/balancing_proxy.rb

Class Method Summary collapse

Class Method Details

.run(backend) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/galerab/balancing_proxy.rb', line 46

def run(backend)
  # run the proxy server and wait for connections
  balancer_port = backend.conf["balancer_port"]
  backend_port = backend.conf["backend_port"]
  puts ANSI::Code.bold { "Launching proxy at 0.0.0.0:#{balancer_port}...\n" }

  Proxy.start(:host => '0.0.0.0', :port => balancer_port, :debug => false) do |conn|
    backend_host = backend.get_next
    if backend_host
      conn.server backend_host, :host => backend_host, :port => backend_port
      puts ANSI::Code.bold { "Farwarding to #{backend_host}\n" }

      conn.on_connect  &Callbacks.on_connect
      conn.on_data     &Callbacks.on_data
      conn.on_response &Callbacks.on_response
      conn.on_finish   &Callbacks.on_finish
    end
  end
end