Jason Noble's blog
Most load balancers have a heart beat monitor, that allows the load balancer to decide whether or not to send traffic to a given host.
For example:
http://server1.host.com/check.txt
If the load balancer gets a 200, it will send traffic to server1, if it gets a 404 or a timeout, it will not.
Today we were trying to figure out how to find what servers were up and running in the load balancer pool.
Here's the capistrano task we came up with:
desc "Curls the check.txt file to see if the host is in the load balancer"
task :check_load_balancer do
roles[:web].map(&:host).each do |hostname|
value = %x{/usr/bin/curl -fs 'http://#{hostname}/check.txt'}
puts "Curling http://#{hostname}/check.txt: #{value}"
end
end
This gives you output like the following:
$ cap production deploy:check_load_balancer
* executing `production'
* executing `deploy:check_load_balancer'
Curling http://server2.dc1.domain.com/check.txt:
Curling http://server3.dc1.domain.com/check.txt: OK
Curling http://server4.dc1.domain.com/check.txt: OK
Curling http://server5.dc1.domain.com/check.txt:
Curling http://server6.dc1.domain.com/check.txt: OK
Curling http://server7.dc1.domain.com/check.txt: OK
Curling http://server8.dc1.domain.com/check.txt: OK
$
Now we can easily see there are issues with server 2 and 5.
I've been contributing to Rails lately by going through the Rails Guides and making sure they're up to date.
How do I go about finding a guide that hasn't been updated in a while?
Here's what I came up with:
I recently started working with OS X Lion at home and started researching the best way to get a Ruby on Rails environment up and running quickly.
After a little searching, I found a really well written article by Frederico Araujo over at http://www.frederico-araujo.com/2011/07/30/installing-rails-on-os-x-lion-with-homebrew-rvm-and-mysql/.
Fred's blog post walks you through step by step getting Homebrew, RVM, Ruby 1.9.2 and MySQL up and running.
It worked perfectly.
Thanks Fred!
