Hi Willy

I've applied your patch and now the website responds with http2..., many thanks for this.

The current situation looks like this:

- When I directly connect with http2 to the nginx, which has server-side-pushing enabled, my browser receive this push-traffic (without any GET-requests first) -> shown within the developer-tools.

- When I connect via haproxy (with your patch applied), then my browser does not receive the server-side-pushed-files. It requests these files with separate GET-requests (shown within the developer-tools).

Any hints for this behavior?

Thanks in advance.
Kind regards,
Tom


On 26.02.19 16:10, Willy Tarreau wrote:
3) When I enable "http2_push_preload on;" on the nginx (because nginx wants
to push images etc.) then the website is not working and I have the
following entries in the haproxy-log:
Feb 26 12:04:50 localhost haproxy[31691]: srcip=1.1.1.1:56146
feip=10.10.10.10:443(http-in,http-in~,1) beip=-:-(http-in,0)
serverip=-:-(<NOSRV>) <BADREQ> 1/1/0/0/0 0/0 requests=11 resptime=-1
bytesread=0 status=0 tsc=PR-- sslv=TLSv1.2 ms=114
Feb 26 12:04:50 localhost haproxy[31691]: srcip=1.1.1.1:56146
feip=10.10.10.10:443(http-in,http-in~,1) beip=10.10.10.10:38632(server1,0)
serverip=10.20.20.20:443(webserver1) GET /auth HTTP/1.1 1/1/0/0/0 0/0
requests=10 resptime=-1 bytesread=0 status=-1 tsc=SD-- sslv=TLSv1.2 ms=114

This is very strange. We don't support push, but push is a negotiation,
so there is no reason for push responses to be sponatenously emitted by
nginx if not invited to do so! Or maybe it fails on the settings frame
because nginx announces an incorrect value (the standard allows only 0
or 1) ?

OK, I am stupid. This is the reason for your problem above. Please apply
the attached patch (or simply pull the 1.9 repo), I'm pretty sure it will
be fixed.

The reason is that PUSH is enabled by default in H2. We used not to
advertise its non-support because originally our SETTINGS frames were
only sent to clients and they don't care. But now we needed to update
the function to properly advertise this to the servers, otherwise they
will rightfully use PUSH.

Thanks for reporting this,
Willy


Reply via email to