Rogier Mulhuijzen
Senior Professional Services Engineer
Rogier “Doc” Mulhuijzen is a senior professional services engineer and Varnish wizard at Fastly, where performance tuning and troubleshooting have formed the foundation of his 18-year career. When he’s not helping customers, he sits on the Varnish Governance Board, where he helps give direction and solve issues for the Varnish open source project. In his spare time, he likes to conquer all terrains by riding motorcycles, snowboarding, and sailing.
CDN vs Caching: What is the Difference?
Rogier Mulhuijzen
CDN and caching can get confused for one another. Learn the differences between CDN and caching to help decide what you should use for optimal web performance.
Solving VCL auth & feature flags at the edge | Fastly
Rogier Mulhuijzen, Anna MacLachlan
In “How to solve anything” parts 1 and 2, we outlined how to use Varnish Configuration Language (VCL) to address some of your more challenging problems. In this post, we’ll discuss how Andrew Betts of the Financial Times uses advanced VCL to securely cache and serve authenticated and authorized content, and set up feature flags.
VCL problem-solving: SOA routing & non-ASCII support | Fastly
Rogier Mulhuijzen, Anna MacLachlan
In “How to solve anything, part 1,” we discussed Andrew Betts’ clever tips for using Fastly’s Custom Varnish Configuration Language (VCL) to collect data at the edge. In this post, we’ll look at how Nikkei uses VCL to deal with a service-oriented architecture as well as write synthetic responses with non-ASCII characters.
VCL problem solving: collect edge data | Fastly
Rogier Mulhuijzen, Anna MacLachlan
At our second annual customer summit, Andrew Betts of the Financial Times discussed using VCL to “solve anything” — pushing his team’s problems to the CDN layer.
Caching with CORS
Rogier Mulhuijzen
Before diving into CORS (Cross-origin resource sharing), I need to mention JSONP, which is the other solution to getting data from a different “Origin.” In Using ESI, Part 2: Leveraging VCL and ESI to Use JSONP, Simon explains what JSONP is, and how to cache it with Fastly, using one Fastly specific feature, req.topurl. Now, with Varnish 4.1, req.top.url (note the extra period) is available, and it allows you to do the same thing with vanilla Varnish.
The VCL Cookie Monster
Rogier Mulhuijzen
This month's tip is more a theoretical exercise than anything else, just to show the power of VCL, and to explain a few regular expressions. I'm going to discuss VCL that deletes cookies.
Reusing backend connections to increase performance
Rogier Mulhuijzen
Reusing connections between your Varnish instance and your backends (origins) is a good idea for multiple reasons. If your Varnish is on the same network as your backends and you're doing low volume traffic, you can stop reading, because a) the difference will probably be negligible, and b) you're probably already reusing backend connections.
Cache hit issues? Fix it | Fastly.
Rogier Mulhuijzen
The cache hit ratio (or hit ratio for short) is the ratio of hits to cacheable requests (hits and misses combined). There's also cache coverage, the ratio of cacheable requests to all requests (cacheable requests and passes). In most cases, you'll want both to be as high as possible, since misses and passes cause load on your origins, and are slower than cache hits.
Boost Cache Efficiency with Origin Log Analysis
Rogier Mulhuijzen
If you want to increase the efficiency of your Varnish (or Fastly) cache, you need to figure out what traffic is not cached. By definition, any traffic that reaches your origin is not cached, and thus worthy of investigation.
Normalizing the Host Header
Rogier Mulhuijzen
In the continued quest to increase cache hit ratios, the chant is: "Normalize, normalize, normalize." Less variation in your requests means you have a higher chance of getting hits. This month's highlight is the Host header.
Overriding Origin TTL in Varnish, or My Beginner's Mistake
Rogier Mulhuijzen
A long time ago, I was helping out at a gaming conference where there was an intranet CMS using a Twitter search plugin. Unfortunately, the rather saturated Internet connection was slowing down all of the Twitter search requests. Each page needed 4 searches, at 500ms each, for a total of 2-3 seconds per page.
Increase Your Hit Ratio With This Simple Tip
Rogier Mulhuijzen
If you're caching URLs that include user input, such as a search box, and the search is case insensitive, there's a really easy way to increase your hit ratio: convert the URL to lowercase.
Using Boltsort to Make API Caching More Efficient
Rogier Mulhuijzen
There's a Fastly module available called "boltsort" which allows you to easily sort the parameters in the query string, so that you will always end up with the same URL, no matter what order the consumer of your API placed them in.
Best practices for using the Vary header
Rogier Mulhuijzen
Vary is one of the most powerful HTTP response headers. However, if used incorrectly, it can cause problems for developers. Understand vary header best practices to reduce mistakes and improve performance.
Test New Encodings With Fastly, Including WebP
Rogier Mulhuijzen, Austin Spires
At Fastly, we believe that the freedom to experiment is what makes the web great. We're excited by the cutting edge breakthroughs in file encodings that are happening almost every day, making the web better and faster.