seesaw 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/README.txt +67 -5
  2. data/lib/seesaw/init.rb +2 -2
  3. metadata +1 -1
data/README.txt CHANGED
@@ -12,7 +12,7 @@ Let's say you have a mongrel cluster setup with 7 individual mongrels on your se
12
12
 
13
13
  When you execute:
14
14
 
15
- mongrel_rails seesaw::ripple
15
+ mongrel_rails seesaw::ripple
16
16
 
17
17
  This will happen:
18
18
 
@@ -45,15 +45,23 @@ Halfway through the process, your site is only running on half of the mongrels,
45
45
 
46
46
  == INSTALL:
47
47
 
48
- sudo gem install seesaw
48
+ sudo gem install seesaw
49
49
 
50
50
  == CONFIGURATION
51
51
 
52
- === seesaw.yml
52
+ Generate an initial configuration with
53
53
 
54
- The seesaw configuration looks like this:
54
+ mongrel_rails seesaw::configure
55
55
 
56
- === Nginx
56
+ This will generate the webserver includes in config/http_cluster. You should move them out of the Rails project and into a well-known location.
57
+
58
+ *IMPORTANT*: the configuration files and the symlink are owned by the user excecuting the seesaw command. You can change the ownership, but you may need to change the symlink_cmd ocnfiguration parameter to use sudo.
59
+
60
+ Now change your webserver configuration as outlined below, and you're ready to go.
61
+
62
+ === seesaw.yml
63
+
64
+ The seesaw configuration looks like this (example for nginx):
57
65
 
58
66
  ---
59
67
  restart_cmd: sudo kill -HUP `cat /opt/local/nginx/logs/nginx.pid`
@@ -66,8 +74,62 @@ config_files:
66
74
  2: cluster_2.conf
67
75
  symlink_cmd: ln -sf
68
76
 
77
+ In order to switch between cluster halves seamlessly, seesaw symlinks one of three different configuration files. The symlink must be references by the webserver configuration, see webserver-specific documentation below.
78
+
79
+ * config_path
80
+ The full path to the directory where the webserver configuration files live. More on that follows.
81
+
82
+ * config_symlink
83
+ The name of the symlink that points to one of the three cluster configurations. Defaults to cluster.conf. This needs to be included by the webserver configuration.
84
+
85
+ * config_files
86
+ * all
87
+ the name of the configuration fragment containing the full cluster setup
88
+ * 1
89
+ the name of the configuration fragment containing the front half of the cluster
90
+ * 2
91
+ the name of the configuration fragment containing the back half of the cluster
92
+
93
+ Other options:
94
+
95
+ * mongrel_config_file
96
+ the location of the mongrel_cluster configuration file (config/mongrel_cluster.yml by default)
97
+
98
+ * restart_cmd
99
+ the command to execute to grecefully restart the webserver. You will need to adjust this according to your filesystem layout. The defaults are:
100
+ * nginx: sudo kill -HUP `cat /opt/local/nginx/logs/nginx.pid`
101
+ * apache: sudo apachectl graceful
102
+ For nginx, adjust the path to the nginx.pid file to match your setup. You can adjust the location of the pid file in you nginx configuration.
103
+
104
+ === Nginx
105
+
106
+ To include the seesaw-managed symlink pointing to the current cluster configuration, use something like this (mongrel_pack is the default name of the mongrel cluster generated by seesaw. Change in the three cluster configurations and the webserver config):
107
+
108
+ http {
109
+ ...
110
+ include /full/path/to/generated/files/http_cluster/cluster.conf;
111
+ server {
112
+ ...
113
+ location / {
114
+ #root share/nginx/html;
115
+ proxy_pass http://mongrel_pack;
116
+ }
117
+ ...
118
+ }
119
+ }
120
+
69
121
  === Apache
70
122
 
123
+ Simply add
124
+
125
+ Include "/full/path/to/generated/files/http_cluster/cluster.conf"
126
+
127
+ where you would normally have your <Proxy balancer> section.
128
+
129
+ If you have any rewrite rules referencing the cluster name, change it accordingly:
130
+
131
+ RewriteRule ^/(.*)$ balancer://mongrel_pack%{REQUEST_URI} [P,QSA,L]
132
+
71
133
  == LICENSE:
72
134
 
73
135
  (The MIT License)
@@ -6,7 +6,7 @@ require 'seesaw/mongrel_cluster_patch'
6
6
  require "erb"
7
7
 
8
8
  module Seesaw
9
- VERSION = '0.2.3'
9
+ VERSION = '0.2.4'
10
10
 
11
11
  module CommandBase
12
12
 
@@ -217,7 +217,7 @@ module Seesaw
217
217
  write_config_include(File.join(@http_config_path,@options["config_files"][2]), (mid_port..end_port))
218
218
 
219
219
  # symlink
220
- system("#{@options["symlink_cmd"]} #{File.expand_path(File.join(@http_config_path,@options["config_files"]["all"]))} #{File.join(@http_config_path,@options["config_symlink"])}")
220
+ system("#{@options["symlink_cmd"]} #{@options["config_files"]["all"]} #{File.join(@http_config_path,@options["config_symlink"])}")
221
221
 
222
222
  log "Don't forget to include #{File.expand_path("#{@http_config_path}/cluster.conf")} in your webserver configuration."
223
223
  end
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: seesaw
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.3
6
+ version: 0.2.4
7
7
  date: 2007-08-19 00:00:00 +10:00
8
8
  summary: Ripple-restart a mongrel cluster with no downtime
9
9
  require_paths: