My use case for Caddy is primarily that of a reverse proxy.
As such, I often need to reload the services that are behind Caddy.
I see that Caddy has a zero downtime reload for its own configuration, which is great.
Is there a way to tell Caddy to “hold on to” requests that it would normally send to a given upstream while the upstream reloads?
Caddy doesn’t really have a way of telling whether an upstream server is capable of receiving a request until it tries to make that request.
You could use multiple upstream servers. With try_duration set to some value of time, clients will “hang” on their request while Caddy tries all the available upstream servers until one produces a response or the try_duration runs out.