I found it by myself. ‘proto h2’ means the server is only opened HTTP2.
With ‘proto h2’,
Client HTTP2 Request --> HTX --> HTTP2 backends.
Without ‘proto h2’,
Client HTTP2 Request --> HTX --> HTTP1.1 backends.
It was the problem of my backends(gunicorn).
Haproxy works fine.
The interesting thing is HTTP1.1 requests to ‘proto h2’ servers.
I guessed HAproxy just puts ‘upgrade’ header, but it converts HTTP1.1 to real HTTP2 packets.