Skip to content
Snippets Groups Projects
Select Git revision
  • ce81071d863579261ccd7956bfa331462b3ea50f
  • master default protected
  • dependabot/pip/black-24.3.0
  • fix-ci-build-test-problems
  • v0.3.0
  • v0.2.0
  • v0.1.2
  • v0.1.1
  • v0.1.0
9 results

haproxy.cfg

Blame
  • user avatar
    salty authored
    ce81071d
    History
    haproxy.cfg 4.00 KiB
    global
        log stdout format raw daemon "${LOG_LEVEL}"
    
        pidfile /run/haproxy.pid
        maxconn 4000
    
        # Turn on stats unix socket
        server-state-file /var/lib/haproxy/server-state
    
    defaults
        mode http
        log global
        option httplog
        option dontlognull
        option http-server-close
        option redispatch
        retries 3
        timeout http-request 10s
        timeout queue 1m
        timeout connect 10s
        timeout client 10m
        timeout server 10m
        timeout http-keep-alive 10s
        timeout check 10s
        maxconn 3000
    
        # Allow seamless reloads
        load-server-state-from-file global
    
        # Use provided example error pages
        errorfile 400 /usr/local/etc/haproxy/errors/400.http
        errorfile 403 /usr/local/etc/haproxy/errors/403.http
        errorfile 408 /usr/local/etc/haproxy/errors/408.http
        errorfile 500 /usr/local/etc/haproxy/errors/500.http
        errorfile 502 /usr/local/etc/haproxy/errors/502.http
        errorfile 503 /usr/local/etc/haproxy/errors/503.http
        errorfile 504 /usr/local/etc/haproxy/errors/504.http
    
    backend dockerbackend
        server dockersocket $SOCKET_PATH
    
    backend docker-events
        server dockersocket $SOCKET_PATH
        timeout server 0
    
    frontend dockerfrontend
        bind ${BIND_CONFIG}
        http-request deny unless METH_GET || { env(POST) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/[a-zA-Z0-9_.-]+/((stop)|(restart)|(kill)) } { env(ALLOW_RESTARTS) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/[a-zA-Z0-9_.-]+/start } { env(ALLOW_START) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/[a-zA-Z0-9_.-]+/stop } { env(ALLOW_STOP) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/auth } { env(AUTH) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/build } { env(BUILD) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/commit } { env(COMMIT) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/configs } { env(CONFIGS) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers } { env(CONTAINERS) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/distribution } { env(DISTRIBUTION) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/events } { env(EVENTS) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/exec } { env(EXEC) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/grpc } { env(GRPC) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/images } { env(IMAGES) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/info } { env(INFO) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/networks } { env(NETWORKS) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/nodes } { env(NODES) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/_ping } { env(PING) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/plugins } { env(PLUGINS) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/secrets } { env(SECRETS) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/services } { env(SERVICES) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/session } { env(SESSION) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/swarm } { env(SWARM) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/system } { env(SYSTEM) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/tasks } { env(TASKS) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/version } { env(VERSION) -m bool }
        http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/volumes } { env(VOLUMES) -m bool }
        http-request deny
        default_backend dockerbackend
    
        use_backend docker-events if { path,url_dec -m reg -i ^(/v[\d\.]+)?/events }