Should I disable server push for IIS origin when using Argo tunnel?

I’ve been using Argo tunnel to our IIS tunnel for quite a while. I just realized something…

Our HTML page is very small and changes infrequently. We push about 500kb of javascript and a few stylesheets - all which have custom etags set. They are thumbprinted with etags.

I’m wondering if we should be disabling server push on our IIS server to avoid always pushing files that Cloudflare already has.

eg.

First user: Requests index.html
Origin IIS server pushes:
main.12345.js
app.12345.js
styles.12345.css

Now the js and css are all cached by cloudflare.
They’re all set to very long TTL since the filenames have embedded thumbprints.

Second user: Requests index.html with a hard refresh
Origin IIS server pushes same js files.
main.12345.js
app.12345.js
styles.12345.css

Now isn’t that kind of pointless and inefficient? Even if Cloudflare aborts the push, because they’re in the cache. Isn’t it better for our server to just send the rel=preload headers, disable push (or HTTP/2 entirely) and let cloudflare grab the individual files it needs…

Remember we may get 100,000 requests for the HTML and the JS/CSS won’t change for days or weeks.

Are all or any of these assumptions true?

  • Cloudflare does not care if I have actually HTTP/2 pushed a file from the origin (with the HTML) that is then pushed to the end user. It just looks at the rel=preload header and gets the file however it needs it - or gets it from the CF cache.

  • If push is enabled from the origin server to Argo tunnel daemon - minimal bandwidth is wasted if CF cache already has the file cached as it can abort the push from the origin.

  • Cloudflare will just request any files it doesn’t yet have from the origin, and will push them as soon as they’re available.

  • I can set rel=preload headers from my origin even if push is actually disabled in IIS - and everything will work ok.

  • If we disable the push functionality in IIS we may get slightly better overall efficiency in bandwidth and speed because it will reduce unnecessary pushing.

If disabling HTTP/2 push at my origin is advisable is there an Argo option for this or do I have to screw around in the registry.

Or does Argo cloudflared daemon not even talk to my IIS server with HTTP/2 in the first place? And if so is it to avoid these exact concerns !!!

Cloudflare does not support H2 to the origin, so no need to worry about anything.

Prefetch is supported in enterprise plans.

This topic was automatically closed after 30 days. New replies are no longer allowed.