nginx with nginx communication using http2 without ssl

I've nginx-proxy and nginx-server docker containers.

client browser < > nginx-proxy is http2 and 443 via proxy_pass.

nginx-proxy < > nginx-server is http1 and I'd like to move it to http2 but without SSL - since they are both on same server, I don't see benefit of encrypting traffic.

I read nginx docs, and they say that it supports http2 without ssl. so I added 80 http2; to listen directive in nginx-server vhost.

However, instead of showing website, browser downloads the file with following content:

0000 1204 0000 0000 0000 0300 0000 8000
0400 0000 0000 0500 ffff ff00 0004 0800
0000 0000 7fff 0000 0000 0807 0000 0000
0000 0000 0000 0000 01

it looks awfully like this issue but mine is not browser <> nginx issue but nginx <> nginx issue. Which shouldn't exist, because docs say nginx supports http2 without ssl.

How do I let nginx-proxy understand that backend nginx-server speaks http2... I guess that's the problem since hex dump says: malformed packet.

This issue states that it is not possible, and will not be implemented.


Your benefits of doing this will be minimal because the latency is very low between software on the same server. Given it's either very difficult or impossible I wouldn't spend your time on this.