Avi load balancer
The issue occurs when the following conditions are met:
1. The Virtual Service is configured for HTTP/2.
2. The Backend Pool may be configured for HTTP/2, but the backend server negotiates HTTP/1.1 during the TLS-ALPN negotiations .
3. The backend server includes an `Upgrade: h2, h2c` header in its HTTP/1.1 response.
4. The Avi Service Engine (SE) transparently forwards this `Upgrade` header to the client over the existing HTTP/2 connection.
As the "Upgrade" header is not valid when a client is already using HTTP/2 ; this can result in a "PROTOCOL_ERROR" message for the user.
To mitigate the issue immediately, configure an HTTP Response Policy on the Virtual Service to remove the "Upgrade" header from backend responses.
Steps to apply the HTTP response policy:
1. Navigate to the Application > Virtual Service (VS) - edit VS configuration.
2. Move to the Policies tab > HTTP policy sets > Add - click on the three dots and click create.
3. Provide a name for the HTTP policy set and naviagte to HTTP response rules ; click on Add.
4. Create a new rule as shown in below screenshot and save the rule:
4. Save the HTTP Policy set.