I'm going to share my experiences with MaxCDN, I have been using it for over a week to speed up this site, I started a Free test account, and thanks to the friends of the sales department I have been also given access to Full Site Cache, so the whole site is being accelerated by MaxCDN network.
To explore some of their features I will explore the control panel and its options explaining features.
MaxCDN has a lot of features, most of them does not come with the basic package and you have to pay for them an extra fee, this might be an advantage or a disadvantage depending on your needs.
Types of Zones
With MaxCDN you can have PullZones or PushZones, where the former is best suitable for files that change sometimes, like css, js and images, those files are better managed on your own site, and the Edge Servers will pull them from there and serve them to the visitors of the site when requested. In the case of big files delivery, like installers or PDF documents, the type of files you may put in an FTP server, you better set up a push zone, where you upload the file to the MaxCDN network and let them the work of delivering those files, as I said, just like an FTP server.
This review will focus on pull zones, as I am using that one, and I am aiming at site accelerating websites.
As soon as you create a pull zone, you will be given your own url in the form of *.netdna-cdn.com. You are free to use that domain to access your assets, or you can setup a custom domain and set a CNAME record pointing to the domain given to you by MaxCDN
If you want your complete site hosted and want to CNAME to www, you will have to ask them for this service which is 100$ per month over your basic package.
Cache-Control Header Settings
You are given the option to customize the Cache-Control headers from the control panel, you can set MaxCDN to respect the origin server Cache-Control settings or make it override them.
If you opt for making MaxCDN respect the origin server settings, you have to specify the default expiry headers for those elements with no Cache-Control headers, and the options are:
- 1 day
- 7 days
- 1 Month
- 1 Year
Other CDN providers, let you specify the TTL directly in seconds, so having only four options might be seen as a disadvantage, but it is also undeniable that it is easier to use than set it up in seconds.
If you decide to override the origin server settings, then you have the same granularity, you should be covered with those options unless you have some very special needs, and it that case you can set up the Cache-Control on the origin server
This is a service some CDN providers offer to its customers, it sets up one more layer of protection to your origin server, when enabled MaxCDN will set another server between the Edge Server and your origin server, this way all requests from Edge servers are done to this middle one, and the middle server will request the file to the origin one. As you may notice, every asset will only be requested once every X seconds, where X is the TTL of the object. When Origin Shield is not enabled every Edge server request directly to the origin server every X seconds, so considering MaxCDN have more than 10 POPs and if you have a lot of resources, the origin server if not fast enough may add some considerable latency.
The price for this service is $200/month over your basic package.
MaxCDN is very flexible when it comes to define how cache will behave and these are the options you have on the control panel
- Gzip Compression
- Files can be gzipped on origin or on the edge server, or not gzipped at all, I recommend you gzipping them on origin to save bandwidth on the origin server, but if you do not have the option to compress files on origin server enable it on Edge locations.
- Query String
- You can make **MaxCDN** treat each file with a Query Sting as different object based on the query string, you should enable this only if you really know what you are doing as you may get very low hit/miss ratio if you enable it.
- Content Disposition
- With this option enabled, the CDN servers force all files on the zone to be downloaded instead of interpreted and rendered by the server
- Strip all cookies
- This option is handy to improve cache, as if not set all objects with a cookie set will be treated as different objects, you know that you have to serve static object from cookie less domain, with this option the edge server will strip the cookies
- Pseudo Streaming
- This option makes a pull zone behaves more or less like a push zone and allow streaming of flv and mp4 files once cached, this is great if you are serving media files using html5 playbacks
- Use Stale Content
- As the name implies this option instruct the edge servers to serve expired content while retrieving a new copy, I know Nginx can't do this and that is Varnish the one that do this on version 4, at least natively maybe MaxCDN have Varnish on its stack
- Ignore Cache-Control
- This one is very self explanatory, when set it will override Cache-Control header from origin and use the one configured before.
- XFF X-Forwarded-For header
- If you are logging on origin, this option will help you logging the visitor's IP instead of the IP of the edge server
Raw Log Storage
For another $100 per month, you can have raw logs uploaded to an Amazon S3 bucket.
You can purge files one by one, or purge all files, from the control panel or using an API, and purging files is free.
You can set some IPs in a White list to avoid hot-linking.
MaxCDN supports SPDY, Dedicated SSL which cost $99 per month, and you need to buy a SSL certificate or MaxCDN can buy one for you, it also supports Shared SSL, and SNI where you should also buy a certificate, but do not need a dedicated IP in this case.
To improve SEO performance, you can add a robots files to disallow robots from crawling the root directory, and you can also enable canonical header to point to the origin server.
MaxCDN have points of presence (POPs) in North America, basically United States, and Europe, those comes included in basic packages, if you want to have access to Asia and Oceania POPs, you have to pay $15 per month, that is a flat fee to enable Tel Aviv, Sydney, Hong Kong, Tokyo and Singapore.
As you may have noticed, MaxCDN price structure is not pay as you grow, and almost eache feature has an extra cost, which is good if you do not need all of them, because this allow you to have its great service affordable, but it is and advantage if you need some extra features as it will start costing too much too easy.
Be sure to read the small letters, if go over your quota, you will be billed at different rates per GigaByte according to the package you are in, but, it will be in 1 TeraBytes increments, so if you are in the smaller package and go over 100 Gigabytes, you are going to be billed $80 for 1 TeraByte at 8 cents per Gigabyte.
Performance is great, I have tested a lot of CDNs these months and MaxCDN is one of the best ones, the daily average of response using Pingdom for a full site cache is 126 ms, it is the best response I have got form the CDNs I have tested until now. I have tested so far CloudFront, Fastly, KeyCDN and my OwnCDN which get the second place.
I have to clarify that I have tested been using their full site cache option and I have enabled the Asia Pacific POPs, CloudFront and Fastly under the same conditions
If you need a way to improve speed of your site and want to host static assets on a CDN MaxCDN is one of your best options, just be sure to choose the right package, and do the math for all extra features needed in advance.