global log stdout format raw local0 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats #--------------------------------------------------------------------- # common defaults that all the 'listen' and 'backend' sections will # use if not designated in their block #--------------------------------------------------------------------- defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 #--------------------------------------------------------------------- # main frontend which proxys to the backends #--------------------------------------------------------------------- frontend main mode http option httplog #capture request header X-Ingress-Path len 256 bind *:80 default_backend octoprint backend octoprint # ref https://community.octoprint.org/t/reverse-proxy-configuration-examples/ http-request replace-path ^([^\ :]*)\ /local_octoprint_proxy/(.*) \1\ /\2 http-request add-header X-Script-Name %[req.hdr(X-Ingress-Path)] option forwardfor server octoprint OCTOPRINT_HOST:OCTOPRINT_PORT USE_SSL VERIFY_SSL check