Update haproxy to run as user haproxy
[aai/aai-common.git] / aai-common-docker / aai-haproxy-image / src / main / docker / haproxy.cfg
1 global
2         log /dev/log    local0
3         stats socket /usr/local/etc/haproxy/haproxy.socket mode 660 level admin
4         stats timeout 30s
5         daemon
6         #################################
7         # Default SSL material locations#
8         #################################
9         ca-base /etc/ssl/certs
10         crt-base /etc/ssl/private
11
12         # Default ciphers to use on SSL-enabled listening sockets.
13         # For more information, see ciphers(1SSL). This list is from:
14         # https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
15         # An alternative list with additional directives can be obtained from
16         # https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
17         tune.ssl.default-dh-param 2048
18         ssl-default-bind-options force-tlsv12 no-tls-tickets
19         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: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
20         tune.ssl.maxrecord 1400
21
22 defaults
23         log     global
24         mode    http
25         option  httplog
26 #       option  dontlognull
27 #       errorfile 400 /etc/haproxy/errors/400.http
28 #       errorfile 403 /etc/haproxy/errors/403.http
29 #       errorfile 408 /etc/haproxy/errors/408.http
30 #       errorfile 500 /etc/haproxy/errors/500.http
31 #       errorfile 502 /etc/haproxy/errors/502.http
32 #       errorfile 503 /etc/haproxy/errors/503.http
33 #       errorfile 504 /etc/haproxy/errors/504.http
34
35         option  http-server-close
36         option forwardfor except 127.0.0.1
37         retries 6
38         option redispatch
39         maxconn 50000
40         timeout connect 50000
41         timeout client  480000
42         timeout server  480000
43         timeout http-keep-alive 30000
44
45
46 frontend IST_8443
47         mode http
48         bind 0.0.0.0:8443 name https ssl crt /etc/ssl/private/aai.pem
49 #       log-format %ci:%cp\ [%t]\ %ft\ %b/%s\ %Tq/%Tw/%Tc/%Tr/%Tt\ %ST\ %B\ %CC\ %CS\ %tsc\ %ac/%fc/%bc/%sc/%rc\ %sq/%bq\ %hr\ %hs\ {%[ssl_c_verify],%{+Q}[ssl_c_s_dn],%{+Q}[ssl_c_i_dn]}\ %{+Q}r
50         log-format "%ci:%cp [%tr] %ft %b/%s %TR/%Tw/%Tc/%Tr/%Ta %ST %B %CC \ %CS %tsc %ac/%fc/%bc/%sc/%rc %sq/%bq %hr %hs %{+Q}r"
51         option httplog
52         log global
53         option logasap
54         option forwardfor
55         capture request header  Host len 100
56         capture response header Host len 100
57         option log-separate-errors
58         option forwardfor
59         http-request set-header X-Forwarded-Proto https if { ssl_fc }
60         http-request set-header X-AAI-Client-SSL TRUE if { ssl_c_used }
61         http-request set-header X-AAI-SSL                       %[ssl_fc]
62         http-request set-header X-AAI-SSL-Client-Verify         %[ssl_c_verify]
63         http-request set-header X-AAI-SSL-Client-DN             %{+Q}[ssl_c_s_dn]
64         http-request set-header X-AAI-SSL-Client-CN             %{+Q}[ssl_c_s_dn(cn)]
65         http-request set-header X-AAI-SSL-Issuer                %{+Q}[ssl_c_i_dn]
66         http-request set-header X-AAI-SSL-Client-NotBefore      %{+Q}[ssl_c_notbefore]
67         http-request set-header X-AAI-SSL-Client-NotAfter       %{+Q}[ssl_c_notafter]
68         http-request set-header X-AAI-SSL-ClientCert-Base64   %{+Q}[ssl_c_der,base64]
69         http-request set-header X-AAI-SSL-Client-OU             %{+Q}[ssl_c_s_dn(OU)]
70         http-request set-header X-AAI-SSL-Client-L              %{+Q}[ssl_c_s_dn(L)]
71         http-request set-header X-AAI-SSL-Client-ST             %{+Q}[ssl_c_s_dn(ST)]
72         http-request set-header X-AAI-SSL-Client-C              %{+Q}[ssl_c_s_dn(C)]
73         http-request set-header X-AAI-SSL-Client-O              %{+Q}[ssl_c_s_dn(O)]
74         reqadd X-Forwarded-Proto:\ https
75         reqadd X-Forwarded-Port:\ 8443
76
77 #######################
78 #ACLS FOR PORT 8446####
79 #######################
80
81         acl is_Port_8446_generic path_reg -i ^/aai/v[0-9]+/search/generic-query$
82         acl is_Port_8446_nodes path_reg -i ^/aai/v[0-9]+/search/nodes-query$
83         acl is_Port_8446_version path_reg -i ^/aai/v[0-9]+/query$
84         acl is_named-query path_beg -i /aai/search/named-query
85         acl is_search-model path_beg -i /aai/search/model
86         use_backend IST_AAI_8446 if is_Port_8446_generic or is_Port_8446_nodes or is_Port_8446_version or is_named-query or is_search-model
87
88         default_backend IST_Default_8447
89
90
91 #######################
92 #DEFAULT BACKEND 847###
93 #######################
94
95 backend IST_Default_8447
96         balance roundrobin
97         http-request set-header X-Forwarded-Port %[src_port]
98         http-response set-header Strict-Transport-Security max-age=16000000;\ includeSubDomains;\ preload;
99         server aai-resources.api.simpledemo.onap.org  aai-resources.api.simpledemo.onap.org:8447  port 8447 ssl verify none
100
101 #######################
102 # BACKEND 8446#########
103 #######################
104
105 backend IST_AAI_8446
106         balance roundrobin
107         http-request set-header X-Forwarded-Port %[src_port]
108         http-response set-header Strict-Transport-Security max-age=16000000;\ includeSubDomains;\ preload;
109         server aai-traversal.api.simpledemo.onap.org aai-traversal.api.simpledemo.onap.org:8446  port 8446 ssl verify none
110
111 listen IST_AAI_STATS
112         mode http
113         bind *:8080
114         stats uri /stats
115         stats enable
116         stats refresh 30s
117         stats hide-version
118         stats auth admin:admin
119         stats show-legends
120         stats show-desc IST AAI APPLICATION NODES
121         stats admin if TRUE