Hi Henning,

On Sat, Jul 29, 2023 at 07:21:58PM +0000, Henning Svane wrote:
> Hi
> Today I started to get this problem.
> Linie 29140: Jul 29 18:47:09 haproxyxmail01 haproxy[1010]: 192.168.y.65:26570 
> [29/Jul/2023:18:47:09.605] FrontEnd_Xmail_L7_IPv4~ 
> FrontEnd_Xmail_L7_IPv4/<NOSRV> -1/-1/-1/-1/0 503 108 - - SC-- 10/10/0/0/0 0/0 
> "HEAD https://mail.domin.com/OAB/857f4bf9-4f97-466c-a337-6316b1aa3cc8/oab.xml 
> HTTP/2.0<https://mail.domin.com/OAB/857f4bf9-4f97-466c-a337-6316b1aa3cc8/oab.xml%20HTTP/2.0>"
> 
> If I understand the error correctly, it says that it do not find a match for 
> a backend or is this correct, and if so why, because there is a match??

Yes that's it.

> "Mail.domain.com" is the correct FQDN just change here. The only different is 
> it ends on http/2.0
> Where all the request that works is http/1.1 which fits as Exchange do not 
> support 2.0 but only 1.1

I think I have an explanation below:

  acl XMail_Autodiscover url_beg -i /autodiscover
  acl XMail_EAS url_beg -i /microsoft-server-activesync
  acl XMail_ECP url_beg -i /ecp
  acl XMail_EWS url_beg -i /ews
  acl XMail_MAPI url_beg -i /mapi
  acl XMail_OAB url_beg -i /oab
  acl XMail_OWA url_beg -i /owa
  acl XMail_RPC url_beg -i /rpc
  acl XMail_PowerShell url_beg -i /powershell
  acl XMail_NotAllowed url_beg -i /

Your rules rely on url_beg which matches the full URL, not just the path
component. HTTP/2 always sends full URLs, while this is optional in
HTTP/1. If you want to match the path only, your ACLs ought to use
"path_beg" instead of "url_beg".

> But what make it strange is when I try to debug with Fiddler the problem goes
> away, and all works, when I turn of Fiddler the problem starts again.

I don't know exactly how fiddler works but I suspect it works in reverse-
proxy mode and just does not support HTTP/2, thus it forces the client to
negotiate HTTP/1.1.

Hoping this helps,
Willy

Reply via email to