1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00
puma--puma/projects/mongrel_cluster
evanweaver 7c9d988d4d Backport Eric's changes to the http parser from trunk (Eric Wong).
Apply fix for Ragel 6 (Eric Wong, Ry Dahl).

Two tests fail with the new parser (1 failed with the old parser). Needs investigation.

Close #12 (mongrel_rails send_signal leaves a filehandle open until gc).
Close #14 (mongrel_rails command line option --num-procs does not change the max number of procs).
Close #15 (mongrel squashes helpful exception in register method).
Close #16, XXX needs audit! (CGIWrapper "options" attr_reader has no corresponding @options variable).
Close #20 (Mongrel doesn't erase temporary files during it's operation on windows).
Close #19, XXX needs audit! (HttpResponse#reset does not properly reset HeaderOut).
Close #22 (gem_plugin should load gems from Gem.path not Gem.dir).
Close #23 (mongrel_cluster's mongrel_rails configuration option isn't fully respected).

If I had git, being offline wouldn't have resulted in one massive commit.

git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/branches/stable_1-2@995 19e92222-5c0b-0410-8929-a290d50e31e9
2009-03-27 02:43:46 -07:00
..
bin support --clean flag 2007-10-11 07:38:16 +00:00
lib/mongrel_cluster Backport Eric's changes to the http parser from trunk (Eric Wong). 2009-03-27 02:43:46 -07:00
resources fixed ps for status, default path for pids 2007-02-21 16:14:14 +00:00
CHANGELOG CHANGELOG 2007-11-07 02:34:36 +00:00
COPYING updated copyright year 2007-07-10 19:44:34 +00:00
LICENSE everybody gets the Ruby license (complain to evan if this is bad) 2007-10-26 10:13:34 +00:00
Manifest never updated the mongrel cluster manifest 2007-10-31 19:23:23 +00:00
Rakefile update dependency tree 2007-10-10 16:28:29 +00:00
README readme 2007-10-31 19:26:56 +00:00

== Mongrel Cluster Plugin

Tool to help start/stop/restart multiple mongrel servers to use behind a load balancer like Apache 2.2 (mod_proxy_balancer), Lighttpd, Pound, Pen or Balance. This plugin adds an option to specify a number of Mongrel servers to launch, a range of ports, and a configuration file for the cluster. Use "-h" to see command syntax.

Configure cluster and write configuration file:
  mongrel_rails cluster::configure  

Start cluster:
  mongrel_rails cluster::start

Restart cluster:
  mongrel_rails cluster::restart

Stop cluster:
  mongrel_rails cluster::stop

== Capistrano Recipes

Add to config/deploy.rb:
  require 'mongrel_cluster/recipes'

Variables:
  mongrel_servers: Number of Mongrel servers to start.
  mongrel_port: Starting port to bind to.
  mongrel_address: Address to bind to.
  mongrel_environment: Rails environment to run as.
  mongrel_conf: Path to conf file. Defaults to /etc/mongrel_cluster/app_name.conf
  mongrel_user: User to run mongrels in cluster as. Unset by default
  mongrel_group: Group to run mongrels in cluster as. Unset by default.

On Capistrano 2 you get then get the following tasks:

  mongrel:cluster:configure Configure the cluster with variables.
  mongrel:cluster:start: Start Mongrel processes on the app server.
  mongrel:cluster:stop: Stop the Mongrel processes on the app server.
  mongrel:cluster:restart: Restart the Mongrel processes on the app server by starting and stopping mongrel_cluster.
  deploy:restart: Calls mongrel:cluster:restart to allow Mongrel to be used with the standard Capistrano deploy task.
  deploy:start: Calls mongrel:cluster:start to allow Mongrel to be used with the standard Capistrano deploy task.
  deploy:stop: Calls mongrel:cluster:stop to allow Mongrel to be used with the standard Capistrano deploy task.
  
On Capistrano 1 you get the same tasks, but without the namespace:  

  configure_mongrel_cluster: Configure the cluster with variables.
  start_mongrel_cluster: Start Mongrel processes on the app server.
  stop_mongrel_cluster: Stop the Mongrel processes on the app server.
  restart_mongrel_cluster: Restart the Mongrel processes on the app server by starting and stopping mongrel_cluster.
  restart: Calls restart_mongrel_cluster to allow Mongrel to be used with the standard Capistrano deploy task.
  spinner: Calls start_mongrel_cluster to allow Mongrel to be used with the standard Capistrano cold_deploy task.

== Starting clusters at boot

1. Create mongrel_cluster conf directory (/etc/mongrel_cluster).
2. Assign ownership to your Capistrano user.
3. Copy the init.d script from this gem's resouces directory /etc/init.d.
4. chmod +x /etc/init.d/mongrel_cluster
5. Add to init.d startup. On RHEL/CentOS use: /sbin/chkconfig --level 345 mongrel_cluster on