I’ve been taking a look at the code to try to understand how exactly options are being passed to the embedded Caddy server. This is because, although a ‘standard’ Caddy installation will always reply with HTTP/2 (that’s the default), for some reason, Pydio Cells is answering with HTTP/1.1 (as far as I can test it). Because under Caddy HTTP/2 must be explicitly turned off, I wonder if that’s what is being done — somewhere deep in the code — and, if so, is there a reason why?
As far as I could understand the code reading the
pydio.json configuration file (most of which under
github.com/pydio/cells/common/config), it seems that the only options forwarded to the embedded Caddy server are those under
ssl := Get("cert", t, "ssl").Bool(false) selfSigned := Get("cert", t, "self").Bool(false) certFile := Get("cert", t, "certFile").String("") keyFile := Get("cert", t, "keyFile").String("")
Is there any (simple!) way to add further options to be passed along to Caddy? I understand that something like passing
alpn h2 ought to do the trick, i.e. preventing HTTP/1.1 connections to be established and solely rely on HTTP/2.
I understand that I could accomplish this by having a front-end for Cells (say, a separate Caddy, or
nginx, or any of a gazillion reverse proxies that can be found…) but that misses the point… I want to take advantage of Cells’ built-in Caddy server!