diff --git a/tasks/configure.yml b/tasks/configure.yml
index 3038c656a90a0cb0e4d6e7ac59ee497545d2c5e0..0e9b8d1567550ea5e2386a16f545b875c40c94af 100644
--- a/tasks/configure.yml
+++ b/tasks/configure.yml
@@ -16,7 +16,7 @@
     owner='root'
     group='root'
     mode='644'
-  with_items: '{{ groups.all }}'
+  with_items: '{{ groups.webserver }}'
   notify: 'Proxy | Restart HAProxy'
 
 - name: "Proxy | Create host ssl lists"
@@ -26,7 +26,7 @@
     owner='root'
     group='root'
     mode='644'
-  with_items: '{{ groups.all }}'
+  with_items: '{{ groups.webserver }}'
   notify: 'Proxy | Restart HAProxy'
 
 - name: "Proxy | Create use bigpipe host lists"
@@ -54,7 +54,7 @@
     group='root'
     mode='644'
     state='touch'
-  with_items: '{{ groups.all }}'
+  with_items: '{{ groups.webserver }}'
   changed_when: false
 
 - name: "Proxy | Create config file"
diff --git a/templates/haproxy_cfg b/templates/haproxy_cfg
index 0be95cfdb365bc9fb3155fefe8f2aef54cf12ffa..b3915ed5b5ef66771bbfccca5f9c9c52e12c2189 100644
--- a/templates/haproxy_cfg
+++ b/templates/haproxy_cfg
@@ -33,7 +33,7 @@ defaults
   option forwardfor
   option http-server-close
   retries 3
-  default_backend {{proxy_default_backend}}
+  default_backend backend_{{proxy_default_backend}}
 
 listen stats
   bind 127.0.0.1:7000
@@ -68,6 +68,10 @@ frontend http_in
 {% for path in redirect.paths|default([]) %}
 {% if path.deny|default(false) %}
   http-request deny if { hdr(host) -i -n {{from}}{% if path.from is defined %} } { {{path.exact|default(false)|ternary('path','path_beg')}} /{{path.from}}{% endif %} }
+{% else %}
+{% if path.regex is defined and path.from is defined %}
+  http-request redirect code 301 location %[capture.req.uri,regsub({{path.regex}},)] if { hdr(host) -i -n {{from}} } { path_beg /{{path.from}} }
+{% endif %}
 {% endif %}
 {% endfor %}
 {% endfor %}
@@ -78,9 +82,7 @@ frontend http_in
 {% for from in redirect.from %}
 {% for path in redirect.paths|default([]) %}
 {% if not path.deny|default(false) %}
-{% if path.regex is defined and path.from is defined %}
-  http-request redirect code 301 location %[capture.req.uri,regsub({{path.regex}},)] if { hdr(host) -i -n {{from}} } { path_beg /{{path.from}} }
-{% else %}
+{% if path.regex is not defined or path.from is not defined %}
   redirect location {{ redirect.protocol|default('https') }}://{{redirect.to}}/{{path.to|default('')}} code 301 if { hdr(host) -i -n {{from}}{% if path.from is defined %} } { {{path.exact|default(false)|ternary('path','path_beg')}} /{{path.from}}{% endif %} }
 {% endif %}
 {% endif %}
@@ -106,7 +108,7 @@ frontend http_in
   acl kibana_present hdr(host) -i -n '{{ kibana_domain|default(inventory_hostname) }}'
   use_backend backend_redirect_ssl if kibana_present
 {% endif %}
-{% for host in groups['all'] %}
+{% for host in groups['webserver'] %}
   acl redirect_ssl_{{host}} hdr(host) -i -n -f /etc/haproxy/{{host}}.ssl.list
   use_backend backend_redirect_ssl if redirect_ssl_{{host}}
 {% endfor %}
@@ -121,7 +123,7 @@ frontend http_in
   acl static_content path_end .jpg .jpeg .gif .png .ico .swf .css .js .htm .html
   use_backend backend_varnish if static_content !domain_ignores_varnish
 {% endif %}
-{% for host in groups['all'] %}
+{% for host in groups['webserver'] %}
   acl domain_in_{{host}} hdr(host) -i -n -f /etc/haproxy/{{host}}.list
   use_backend backend_{{host}}_bigpipe if domain_uses_bigpipe domain_in_{{host}}
   use_backend backend_{{host}} if domain_in_{{host}}
@@ -154,6 +156,10 @@ frontend https_in_{{ cert.ip }}
 {% for path in redirect.paths|default([]) %}
 {% if path.deny|default(false) %}
   http-request deny if { hdr(host) -i -n {{from}}{% if path.from is defined %} } { {{path.exact|default(false)|ternary('path','path_beg')}} /{{path.from}}{% endif %} }
+{% else %}
+{% if path.regex is defined and path.from is defined %}
+  http-request redirect code 301 location %[capture.req.uri,regsub({{path.regex}},)] if { hdr(host) -i -n {{from}} } { path_beg /{{path.from}} }
+{% endif %}
 {% endif %}
 {% endfor %}
 {% endfor %}
@@ -164,9 +170,7 @@ frontend https_in_{{ cert.ip }}
 {% for from in redirect.from %}
 {% for path in redirect.paths|default([]) %}
 {% if not path.deny|default(false) %}
-{% if path.regex is defined and path.from is defined %}
-  http-request redirect code 301 location %[capture.req.uri,regsub({{path.regex}},)] if { hdr(host) -i -n {{from}} } { path_beg /{{path.from}} }
-{% else %}
+{% if path.regex is not defined or path.from is not defined %}
   redirect location {{ redirect.protocol|default('https') }}://{{redirect.to}}/{{path.to|default('')}} code 301 if { hdr(host) -i -n {{from}}{% if path.from is defined %} } { {{path.exact|default(false)|ternary('path','path_beg')}} /{{path.from}}{% endif %} }
 {% endif %}
 {% endif %}
@@ -196,7 +200,7 @@ frontend https_in_{{ cert.ip }}
   acl is_{{ external.key }} {{ external.acl }}
   use_backend backend_{{ external.key }} if is_{{ external.key }}
 {% endfor %}
-{% for host in groups['all'] %}
+{% for host in groups['webserver'] %}
   acl crm_redirect_{{host}} hdr(host) -i -n -f /etc/haproxy/{{host}}.list
   use_backend backend_redirect if crm_redirect_{{host}}
 {% endfor %}
@@ -207,7 +211,7 @@ frontend https_in_{{ cert.ip }}
   acl static_content path_end .jpg .jpeg .gif .png .ico .swf .css .js .htm .html
   use_backend backend_varnish if static_content !domain_ignores_varnish
 {% endif %}
-{% for host in groups['all'] %}
+{% for host in groups['webserver'] %}
   acl ssl_domain_in_{{host}} hdr(host) -i -n -f /etc/haproxy/{{host}}.ssl.list
   use_backend backend_{{host}}_https_bigpipe if domain_uses_bigpipe ssl_domain_in_{{host}}
   use_backend backend_{{host}}_https if ssl_domain_in_{{host}}
@@ -223,16 +227,21 @@ frontend https_in_{{ cert.ip }}
 {% for external in cert.external|default([]) %}
 
 backend backend_{{ external.key }}
-  server server_{{ external.key }} {{ external.server }} {{ external.options }}
+  server server_{{ external.key }} {{ external.server }} check {{ external.options }}
 {% endfor %}
 {% endfor %}
-{% for host in groups['all'] %}
+{% if proxy_default_backend not in groups['webserver'] %}
+
+backend backend_{{ proxy_default_backend }}
+  http-response deny
+{% endif %}
+{% for host in groups['webserver'] %}
 
 backend backend_{{host}}
 {% if host == inventory_hostname or host == 'localhost' %}
   http-response deny
 {% else %}
-  server server_{{host}} {{hostvars[host]['static_ipv4']}}:80 maxconn {{hostvars[host]['proxy_maxconn']|default(proxy_maxconn)}}
+  server server_{{host}} {{hostvars[host]['static_ipv4']}}:80 check maxconn {{hostvars[host]['proxy_maxconn']|default(proxy_maxconn)}}
 {% endif %}
 
 backend backend_{{host}}_bigpipe
@@ -240,7 +249,7 @@ backend backend_{{host}}_bigpipe
   http-response deny
 {% else %}
   no option http-buffer-request
-  server server_{{host}} {{hostvars[host]['static_ipv4']}}:80 maxconn {{hostvars[host]['proxy_maxconn']|default(proxy_maxconn)}}
+  server server_{{host}} {{hostvars[host]['static_ipv4']}}:80 check maxconn {{hostvars[host]['proxy_maxconn']|default(proxy_maxconn)}}
 {% endif %}
 
 backend backend_{{host}}_https
@@ -248,7 +257,7 @@ backend backend_{{host}}_https
   http-response deny
 {% else %}
   http-response set-header Strict-Transport-Security "max-age=16000000; includeSubDomains; preload;"
-  server server_{{host}} {{hostvars[host]['static_ipv4']}}:80 maxconn {{hostvars[host]['proxy_maxconn']|default(proxy_maxconn)}}
+  server server_{{host}} {{hostvars[host]['static_ipv4']}}:80 check maxconn {{hostvars[host]['proxy_maxconn']|default(proxy_maxconn)}}
 {% endif %}
 
 backend backend_{{host}}_https_bigpipe
@@ -257,7 +266,7 @@ backend backend_{{host}}_https_bigpipe
 {% else %}
   no option http-buffer-request
   http-response set-header Strict-Transport-Security "max-age=16000000; includeSubDomains; preload;"
-  server server_{{host}} {{hostvars[host]['static_ipv4']}}:80 maxconn {{hostvars[host]['proxy_maxconn']|default(proxy_maxconn)}}
+  server server_{{host}} {{hostvars[host]['static_ipv4']}}:80 check maxconn {{hostvars[host]['proxy_maxconn']|default(proxy_maxconn)}}
 {% endif %}
 {% endfor %}
 {% if varnish_host|default(false) %}
@@ -295,7 +304,7 @@ backend backend_redirect
 {% if kibana_users is defined %}
 
 backend backend_kibana
-  server kibana 127.0.0.1:5601 maxconn 32
+  server kibana 127.0.0.1:5601 check maxconn 32
   acl kibana_auth http_auth(kibana) if kibana_present
   http-request auth realm Kibana if !kibana_auth
 {% endif %}