Add fallback backend to nginx + enable keepalive
authorGrant Slater <git@firefishy.com>
Sun, 17 May 2015 22:00:49 +0000 (23:00 +0100)
committerGrant Slater <git@firefishy.com>
Sun, 17 May 2015 22:19:01 +0000 (23:19 +0100)
cookbooks/tilecache/recipes/default.rb
cookbooks/tilecache/templates/default/nginx_tile_ssl.conf.erb

index 19c99b0ce9482752f154cb950dfc726a00af1709..e6028ebb5ffc7bf6e561cb61d908520f970c7c8c 100644 (file)
@@ -31,6 +31,7 @@ package "apache2" do
 end
 
 package "xz-utils"
+package "openssl"
 
 tilecaches = search(:node, "roles:tilecache").sort_by { |n| n[:hostname] }
 tilerenders = search(:node, "roles:tile").sort_by { |n| n[:hostname] }
@@ -89,7 +90,7 @@ end
 
 nginx_site "tile-ssl" do
   template "nginx_tile_ssl.conf.erb"
-  variables :certificate => certificate, :resolvers => resolvers
+  variables :certificate => certificate, :resolvers => resolvers, :renders => tilerenders
 end
 
 service "nginx-certificate-restart" do
index 77e2c6fd0ceda40e876ce1d8a8ba57f09f21e233..0b587e242bb173357c6c01fbd0e513054a7fabee 100644 (file)
@@ -1,5 +1,17 @@
+upstream tile_cache_backend {
+    server 127.0.0.1;
+    <% @caches.each do |cache| -%>
+    #Server <%= cache[:hostname] %>
+    <% cache.ipaddresses(:family => :inet, :role => :external).sort.each do |address| -%>
+    server <%= address %> backup;
+    <% end -%>
+    <% end -%>
+
+    keepalive 32;
+}
+
 server {
-    listen       443 ssl spdy;
+    listen       443 ssl spdy default_server;
     server_name  localhost;
 
     proxy_buffers 8 64k;
@@ -10,11 +22,15 @@ server {
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_ciphers <%= node[:ssl][:ciphers] -%>;
     ssl_prefer_server_ciphers on;
-    ssl_session_cache shared:SSL:30m;
-    ssl_session_timeout 15m;
+    ssl_session_cache shared:SSL:50m;
+    ssl_session_timeout 30m;
     ssl_stapling on;
     ssl_dhparam /etc/ssl/certs/dhparam.pem;
     resolver <%= @resolvers.join(" ") %>;
 
-    location / { proxy_pass http://127.0.0.1; proxy_set_header X-Forwarded-For $remote_addr; }
+    location / {
+      proxy_pass http://tile_cache_backend;
+      proxy_set_header X-Forwarded-For $remote_addr;
+      proxy_http_version 1.1;
+    }
 }