feat(haproxy): Initial commit
This commit is contained in:
		
							
								
								
									
										0
									
								
								build-context/docker-data/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								build-context/docker-data/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										49
									
								
								build-context/docker-data/config/haproxy.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								build-context/docker-data/config/haproxy.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | ||||
| global | ||||
|     daemon | ||||
|     maxconn                         200 | ||||
|     log                             stdout format raw local0 | ||||
|     ssl-default-bind-ciphersuites   TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 | ||||
|     ssl-default-bind-options        prefer-client-ciphers no-tls-tickets ssl-min-ver TLSv1.3 | ||||
|     ssl-default-server-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 | ||||
|     ssl-default-server-options      no-tls-tickets ssl-min-ver TLSv1.3 | ||||
|  | ||||
| defaults generic_defaults | ||||
|     log                             global | ||||
|     maxconn                         50 | ||||
|  | ||||
|     # Irrelevant on frontends | ||||
|     timeout                         connect 5s | ||||
|     timeout                         server  5s | ||||
|  | ||||
|     # Irrelevant on backends | ||||
|     timeout                         client 30s | ||||
|  | ||||
| defaults http_defaults from generic_defaults | ||||
|     mode                            http | ||||
|     option                          forwardfor | ||||
|     option                          httplog | ||||
|  | ||||
| frontend fe_stats from http_defaults | ||||
|     bind                            :"${STATS_PORT-61000}" | ||||
|     stats                           enable | ||||
|     stats                           uri / | ||||
|     stats                           refresh 10s | ||||
|     acl ips_allowed                 src 10.10.10.0/24 10.10.1.0/24 | ||||
|     http-request                    deny if !ips_allowed | ||||
|  | ||||
| frontend fe_https-proxy from http_defaults | ||||
|     bind                            :80 | ||||
|     bind                            :443 ssl strict-sni crt /usr/local/etc/haproxy/certs alpn h2,http/1.1 | ||||
|     redirect                        scheme https code 301 if !{ ssl_fc } | ||||
|     http-response                   set-header Strict-Transport-Security max-age=63072000 | ||||
|     use_backend                     %[req.hdr(host),lower,map_dom(/usr/local/etc/haproxy/hosts.map,be_no-match)] | ||||
|  | ||||
| backend be_example.net from http_defaults | ||||
|     compression                     algo gzip | ||||
|     compression                     type text/plain text/css | ||||
|     option                          httpchk | ||||
|     http-check                      send meth HEAD uri /status hdr Host example.net hdr User-Agent "${HEALTH_CHECK_USER_AGENT-HAProxy} health check" | ||||
|     server                          nextcloud-loft example.net:8080 check inter 10s fall 3 rise 3 | ||||
|  | ||||
| backend be_no-match from http_defaults | ||||
|     http-request                    deny deny_status 404 | ||||
							
								
								
									
										6
									
								
								build-context/docker-data/config/hosts.map
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								build-context/docker-data/config/hosts.map
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| # See https://www.haproxy.com/blog/how-to-map-domain-names-to-backend-server-pools-with-haproxy | ||||
| #  | ||||
| # domain                        backend | ||||
| fully.qualified.domain.name     be_example.net | ||||
| example.net                     be_example.net | ||||
| another.domain.com              be_example.net | ||||
		Reference in New Issue
	
	Block a user