Skip to content
haproxy.cfg.tmpl 2.01 KiB
Newer Older
Pierre Ozoux's avatar
Pierre Ozoux committed
global
  maxconn 4096
  user haproxy
  group haproxy
  tune.ssl.default-dh-param 2048
  ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
Pierre Ozoux's avatar
Pierre Ozoux committed

defaults
  mode http
Pierre Ozoux's avatar
Pierre Ozoux committed
  option forwardfor
  option httpclose
Pierre Ozoux's avatar
Pierre Ozoux committed
  option httplog
  option dontlognull
  retries 3
  timeout connect 5000
  timeout client 50000
  timeout server 50000

frontend https-in
mode http
  bind *:443 ssl no-sslv3 crt-list /etc/haproxy/crt-list crt /etc/haproxy/approved-certs/default.pem
  # HSTS (15768000 seconds = 6 months)
  rspadd  Strict-Transport-Security:\ max-age=15768000
Pierre Ozoux's avatar
Pierre Ozoux committed
  reqadd X-Forwarded-Proto:\ https
{{range $app := lsdir "/services"}}
{{$hostnames := printf "/services/%s/*" $app}}
  {{range gets $hostnames}}
    {{$hostname := .Key}}
    {{$data := json .Value}}
# {{base $hostname}}:
  acl https_{{base $hostname}} hdr(host) -i {{base $hostname}}
Pierre Ozoux's avatar
Pierre Ozoux committed
  acl https_{{base $hostname}} hdr(host) -i www.{{base $hostname}}
Pierre Ozoux's avatar
Pierre Ozoux committed
  use_backend {{base $hostname}} if https_{{base $hostname}}
  {{end}}
{{end}}

frontend http-in
  bind *:80
Pierre Ozoux's avatar
Pierre Ozoux committed
  redirect scheme https code 301
Pierre Ozoux's avatar
Pierre Ozoux committed

{{range $app := lsdir "/services"}}
{{$hostnames := printf "/services/%s/*" $app}}
  {{range gets $hostnames}}
    {{$hostname := .Key}}
    {{$data := json .Value}}
# {{base $hostname}}:
backend {{base $hostname}}
  cookie SERVERID insert nocache indirect
  server Server {{$data.ip}}:{{$data.port}} cookie Server
  {{end}}
{{end}}