Hey, One more thing: I'd also prefer to be able to add X-Forwarded-* headers to the proxied requests. While I don't see this possible due to TCP backends, is there a possible workaround?
On Sat, Jun 6, 2015 at 1:49 PM, Viranch Mehta <[email protected]> wrote: > Hey Lukas, > > On Fri, Jun 5, 2015 at 10:31 PM, Lukas Tribus <[email protected]> wrote: >> Hi Viranch, >> >> >>> tcp-request inspect-delay 5s >>> tcp-request content accept if HTTP >> >> Whats that configuration supposed to do? It doesn't >> make any sense. > > SPDY requires me to forward TCP frames to the backend, so I need the > frontend also to be in TCP mode. But then I also want to inspect HTTP > headers, so these 2 lines will wait for 5s to detect HTTP traffic. > > Although this is no more required with the following solution. > >> >>> acl spdy ssl_fc_npn -i spdy/3.1 >>> acl site1 req.hdr(Host) -i site1.foo.com >>> acl site2 req.hdr(Host) -i site2.foo.com >>> >>> use_backend site1_spdy if spdy site1 >> >> You can't match a Host Header if the protocol is not HTTP >> (but SPDY). >> >> >> Try using SNI instead, and distinguish plaintext and SNI >> ACLs: >> >> >> acl spdy ssl_fc_npn -i spdy/3.1 >> >> acl site1_sni ssl_fc_sni -i site1.foo.com >> acl site2_sni ssl_fc_sni -i site2.foo.com >> >> acl site1_plaintext req.hdr(Host) -i site1.foo.com >> acl site2_plaintext req.hdr(Host) -i site2.foo.com >> >> use_backend site1_spdy if spdy site1_sni >> use_backend site1_http if site1_plaintext >> >> use_backend site2_spdy if spdy site2_sni >> use_backend site2_http if site2_plaintext >> > > This config now does SPDY well but a curl call fails with "Empty reply > from the server". So I got rid of _plaintext ACLs and used _sni for > http backends and it did the trick: > > use_backend site1_spdy if spdy site1_sni > use_backend site1_http if site1_sni > > use_backend site1_spdy if spdy site2_sni > use_backend site1_http if site2_sni > > I'm not sure if this is right theoretically, let me know if not. I > think I should have mentioned it before: I want to support SPDY (over > ssl) and plain HTTPS in HAProxy; any HTTP traffic (on port 80) is > redirected to HTTPS (port 443). So I guess _plaintext ACLs are for > plain HTTP and _sni ACLs work for HTTPS/SPDY (?). > > In any case, thanks for pointing me in the right direction! > > Cheers

