The Akamai Connector for Varnish was created to ease your life as a Varnish administrator or developer. Using the Connector, you will be able to signal the effects of cache rule changes to Akamai automatically. Changes at the origin Varnish Cache server will take effect in real time. This also ensures that you are maximizing offload at multiple application tiers for better performance.
Once installed, the Connector automatically syncs with the Akamai Platform based on your Varnish configuration and forwards your cache purges, making Varnish the source of truth for cache storage.
The Akamai Connector for Varnish is a VMOD that transparently syncs Varnish cache configuration and purges to the Akamai platform using VCL (Varnish Configuration Language).
This allows you to communicate caching rule changes, issue and synchronize purge requests, and defer ESI processing to the Akamai platform, as well as applying best practice Akamai settings at origin, and making it easier to work with device characteristics by parsing the inbound EDC header into a VCL object.
The Akamai Connector will automatically add Edge-Control
headers with the appropriate post-check
attribute that correctly
handles the Varnish grace period. This eliminates race conditions between the Edge and Varnish which can result in Varnish serving stale objects to the Edge
which are then cached. The Connect will also push Edge Side Include (ESI) processing out to the Edge by sending a dca=esi
attribute along with the
Edge-Control
header.
The Akamai Connector will also remove extraneous (non-Content-Encoding
) Vary
headers which can cause the Edge to cache too many variants
of an object resulting in excessive cache misses.
When a request is received from the Edge, the Connector will set the True-Client-IP
header correctly, as well as parse the Akamai Device Characteristics
header in to a more useable VCL object. Each element of the X-Akamai-Device-Characteristics
will be available via req.http.X-ADC-<CHARACTERISTIC>
,
for example the value of is_mobile
will be available as the req.http.X-ADC-is_mobile
header.
Additionally, the Connector will automatically respond with a static test object for SureRoute tests, avoiding an unnecessary trip to origin.
All of these features are enabled by default by including the akamai_auto.vcl
configuration in your VCL configuration. They can be configured
and tweaked just like any other VCL option.
Installation is easy. Varnish Cache users will need to compile the VMOD using provided tarballs, while Varnish Plus users have the added option of using a system package manager (apt, or yum). Once installed, you must copy the VCL and configuration files into place:
$ wget [URL]
$ tar -xvzf akamai-connector-VERSION.tar.gz
$ cd akamai-connector-VERSION
$ ./configure && make && make check
$ make install
NOTE:
[URL]
will be provided as part of access.
# Ubuntu/Debian
$ apt-get install varnish-plus-vmods-extra
# RHEL/CentOS
$ yum install varnish-plus-vmods-extra
Next, install the default configuration and VCL files:
$ akamai-connector-setup.sh install
To enable the default configuration (recommended) add the following lines to your configuration:
import std;
import akamai;
include "akamai_auto.vcl";
NOTE: If you have already imported
std
, you should not do so again.
Once you have reloaded Varnish, you can verify your installation by checking the Via
header returned by Varnish:
# Using cURL
$ curl -s -I -X GET -H "Via:akamai.net(ghost) (AkamaiGHost)" http://example.com
# Using httpie
$ http -ph GET http://example.org "Via:akamai.net(ghost) (AkamaiGHost)"
The Via
header in the response will indicate that the Akamai Connector is being used.
To use cache purging, you must first configure Varnish to enable it. A common way to do this is by adding support for a PURGE
HTTP method only accessible from your internal systems. See the Varnish Documentation for further details.
Once purging is enabled, you can verify purge sync by submitting a purge request and verifying on the Edge.
# Using cURL
$ curl -X PURGE http://example.org/path
# Using httpie
$ http PURGE http://example.org/path
NOTE: By default, the Connector will perform cache invalidation rather than purge.
Full documentation for the Akamai Connector for Varnish.
General Varnish setup and configuration
An introduction to the Akamai Connector for Varnish