From 26cbd9a70c4b19b591a6f865812f0ad98de2668c Mon Sep 17 00:00:00 2001 From: elijah Date: Sat, 21 Jun 2014 02:52:43 -0700 Subject: haproxy: support read only couchdb mirrors --- puppet/modules/site_haproxy/templates/couch.erb | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 puppet/modules/site_haproxy/templates/couch.erb (limited to 'puppet/modules/site_haproxy/templates/couch.erb') diff --git a/puppet/modules/site_haproxy/templates/couch.erb b/puppet/modules/site_haproxy/templates/couch.erb new file mode 100644 index 00000000..baa31486 --- /dev/null +++ b/puppet/modules/site_haproxy/templates/couch.erb @@ -0,0 +1,32 @@ +frontend couch + bind localhost:<%= @listen_port %> + mode http + option httplog + option dontlognull + option http-server-close # use client keep-alive, but close server connection. + use_backend couch_write if METH_POST + default_backend couch_read + +backend couch_write + mode http + balance roundrobin + option httpchk GET / # health check using simple get to root + option allbackups # balance among all backups, not just one. + default-server inter 3000 fastinter 1000 downinter 1000 rise 2 fall 1 +<%- @servers.sort.each do |name,server| -%> +<%- next unless server['writable'] -%> + # <%=name%> + server couchdb_<%=server['port']%> <%=server['host']%>:<%=server['port']%> <%='backup' if server['backup']%> weight <%=server['weight']%> check +<%- end -%> + +backend couch_read + mode http + balance roundrobin + option httpchk GET / # health check using simple get to root + option allbackups # balance among all backups, not just one. + default-server inter 3000 fastinter 1000 downinter 1000 rise 2 fall 1 +<%- @servers.sort.each do |name,server| -%> + # <%=name%> + server couchdb_<%=server['port']%> <%=server['host']%>:<%=server['port']%> <%='backup' if server['backup']%> weight <%=server['weight']%> check +<%- end -%> + -- cgit v1.2.3 From ac5781ef6edaf03f06fa980478726aa7d11653c0 Mon Sep 17 00:00:00 2001 From: Azul Date: Tue, 15 Jul 2014 13:13:28 +0200 Subject: haproxy default to couch_write, couch_read on GET METH_POST probably does not catch PUT, DESTROY etc. So instead we now use the master as the default and only use the replications for GET and HEAD requests. --- puppet/modules/site_haproxy/templates/couch.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'puppet/modules/site_haproxy/templates/couch.erb') diff --git a/puppet/modules/site_haproxy/templates/couch.erb b/puppet/modules/site_haproxy/templates/couch.erb index baa31486..f42e8368 100644 --- a/puppet/modules/site_haproxy/templates/couch.erb +++ b/puppet/modules/site_haproxy/templates/couch.erb @@ -4,8 +4,8 @@ frontend couch option httplog option dontlognull option http-server-close # use client keep-alive, but close server connection. - use_backend couch_write if METH_POST - default_backend couch_read + use_backend couch_read if METH_GET + default_backend couch_write backend couch_write mode http -- cgit v1.2.3