Add sane haproxy timeout defaults and make them configurable.

This commit is contained in:
James Page
2015-12-10 10:53:02 +00:00
3 changed files with 36 additions and 11 deletions

View File

@@ -626,6 +626,12 @@ class HAProxyContext(OSContextGenerator):
if config('haproxy-client-timeout'): if config('haproxy-client-timeout'):
ctxt['haproxy_client_timeout'] = config('haproxy-client-timeout') ctxt['haproxy_client_timeout'] = config('haproxy-client-timeout')
if config('haproxy-queue-timeout'):
ctxt['haproxy_queue_timeout'] = config('haproxy-queue-timeout')
if config('haproxy-connect-timeout'):
ctxt['haproxy_connect_timeout'] = config('haproxy-connect-timeout')
if config('prefer-ipv6'): if config('prefer-ipv6'):
ctxt['ipv6'] = True ctxt['ipv6'] = True
ctxt['local_host'] = 'ip6-localhost' ctxt['local_host'] = 'ip6-localhost'

View File

@@ -12,19 +12,26 @@ defaults
option tcplog option tcplog
option dontlognull option dontlognull
retries 3 retries 3
timeout queue 1000 {%- if haproxy_queue_timeout %}
timeout connect 1000 timeout queue {{ haproxy_queue_timeout }}
{% if haproxy_client_timeout -%} {%- else %}
timeout queue 5000
{%- endif %}
{%- if haproxy_connect_timeout %}
timeout connect {{ haproxy_connect_timeout }}
{%- else %}
timeout connect 5000
{%- endif %}
{%- if haproxy_client_timeout %}
timeout client {{ haproxy_client_timeout }} timeout client {{ haproxy_client_timeout }}
{% else -%} {%- else %}
timeout client 30000 timeout client 30000
{% endif -%} {%- endif %}
{%- if haproxy_server_timeout %}
{% if haproxy_server_timeout -%}
timeout server {{ haproxy_server_timeout }} timeout server {{ haproxy_server_timeout }}
{% else -%} {%- else %}
timeout server 30000 timeout server 30000
{% endif -%} {%- endif %}
listen stats {{ stat_port }} listen stats {{ stat_port }}
mode http mode http

View File

@@ -269,11 +269,23 @@ options:
type: int type: int
default: default:
description: | description: |
Server timeout configuration in ms for haproxy, used in HA configurations. Server timeout configuration in ms for haproxy, used in HA
If not provided, default value of 30000ms is used. configurations. If not provided, default value of 30000ms is used.
haproxy-client-timeout: haproxy-client-timeout:
type: int type: int
default: default:
description: | description: |
Client timeout configuration in ms for haproxy, used in HA Client timeout configuration in ms for haproxy, used in HA
configurations. If not provided, default value of 30000ms is used. configurations. If not provided, default value of 30000ms is used.
haproxy-queue-timeout:
type: int
default:
description: |
Queue timeout configuration in ms for haproxy, used in HA
configurations. If not provided, default value of 5000ms is used.
haproxy-connect-timeout:
type: int
default:
description: |
Connect timeout configuration in ms for haproxy, used in HA
configurations. If not provided, default value of 5000ms is used.