-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Request for resource fails when gzip is enabled with Envoy as origin for Azure CDN #28828
Comments
@mattklein123 @ggreenway @alyssawilk for thoughts. |
looks like gzip is owned by Matt and @KBaichoo . Kevin any chance you can take a look? |
Thank you @alyssawilk, @KBaichoo Here's some more information about the issue: And here's a reproduction, according to the article:
curl response is:
According to the article
In this case it's 370 bytes so the response is invalid. I've also ran the testing tool provided by @DanielLarsenNZ and it confirmed the same. |
On second look, I am not sure this behavior is coming from Envoy or the underlying Next.js server that Envoy is routing to. |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions. |
My team hit this issue as well while we are currently migrating from Lumen CDN to Azure Front Door. Apache webservers on origin backend. Everything was working fine until we decided that we wanted to enable compression. We are still attempting to work out a solution. |
@alphamonkey79 this problem is mostly with MS, see DanielLarsenNZ/nodejs-express-range-headers#1 |
Update... All but one of our environments do not compress. This seems to be the root cause of our problem and is directly tied to the MS paper mentioned in this thread! The solution for us should be a removal of this profile on the F5 for the problem environment. Thank you for listening. |
Envoy should ignore A fair compliant workaround is to, in that very case of compression, ignore client's
Meanwhile another workaround is to disable compression and make CDN handle it, but you are right to point out that Envoy should give a compliant HTTP answer in any case. |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions. |
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions. |
Note: Copied from here: emissary-ingress/emissary#4821 , we are using Ambassador/Emissary Ingress, but the problem might be related to the underlying Envoy proxy/
Recently, MS has rolled an update to some of their CDN endpoints that are supposed to be more compliant with the RFC about range requests.
When gzip is enabled on Ambassador, request from Azure CDN to Ambassador origin fails. According to MS specialist, the problem is with Ambassador/Envoy.
Like I mentioned, the problem is due to a change on their end, to make their edge endpoints more compliant with the RFC. They are rolling this change gradually and therefor the problem is not yet reproducible in all regions. One example region we know is affected is India/Delhi (if you access the resource from there, there will be an issue).
Here's an example resource:
CDN URL (problem occures): https://chatonce.azureedge.net/assets/images/zoom.svg
Ambassador origin URL (problem doesn't occure) : https://ccgw.oncehub.com/oh-customer-front/assets/images/zoom.svg
The network path goes through
Azure CDN/Front Door --> Emissary Ingress (Envoy) --> Next.js service
When accessed through the CDN, with gzip enabled in one of the affected regions, request will stay in "pending" state and will eventually fail.
When the resource is accessed from Ambassador URL directly from browser, it will not fail.
Here's MS response to this:
Here are some additional CURL requests demonstrating the issue:
Good response (Envoy only):
Bad response (Azure CDN + Envoy):
The text was updated successfully, but these errors were encountered: