1

I have set up an AWS application load balancer with a target group specified to be HTTP/1. The target group contains a single Windows Server 2022 instance running IIS. The health check functionality (within Amazon) works fine and reports that the server status is 'healthy'.

When I create a different target group with the same specification except specifying it to be HTTP/2 instead of HTTP/1, the health check status shows 'Unhealthy' with the Health status details stating "Health checks failed with these codes: [400]"

Both the working and non-working target groups are IPv4, HTTPS, and the health checks are configured as HTTPS too.

I'm guessing the IIS implementation of HTTP/2 in Windows Server 2022 is somewhat incompatible with health check functionality of Amazon Application Load Balancers.

Another post on this website suggested reviewing the HTTP Response Headers generated, although I'm not sure I can find any fault with them. I've attached a screenshot.

HTTP Response Headers

Does anyone know if the health check functionality within AWS Application Load Balancers actually works on HTTP/2 with Windows Server 2022?

2
  • Windows authentication, NTLM/Kerberos/ or Negotiate is not supported with HTTP/2. In this case, IIS will revert to HTTP/1.1. Clear text – IIS supports HTTP/2 only over TLS. Bandwidth throttling – IIS has a feature to limit bandwidth in HTTP/1.1, but it is not enforced in HTTP/2. Do you use any of this?
    – Turdie
    Nov 19 at 19:12
  • Thank you for your reply @Turdie. The site uses Anonymous Authentication and this is configured (in IIS) to use the Application pool permissions. I haven't set any Bandwidth throttling.
    – JR19
    Nov 20 at 12:00

0

You must log in to answer this question.