MetaCDN - StreamShark

Accelerating your website with MetaCDN Site Accelerator

Overview

MetaCDN offers a Site Acceleration product that can accelerate your entire website with just a few clicks. Registering your website for acceleration is a very simple two step process.  This involves provisioning of an accelerator in the MetaCDN network, then modifying your web application to use a host domain we give you (the accelerator domain) to access your content.  You can think of this as a form of plumbing where some (or all) of your web content will be served to the user from our network, using your web server as the source of content.

Some level of technical knowledge of the workings of the internet is recommended before embarking on using a site accelerator.  If you don't know what DNS means or what a web server is, you might have to do some research (the internet being a great research tool for these topics) or pass the baton on to someone who is comfortable.  If you don't know anyone suitable or are unsure of which integration option is appropriate for your website (and your site is already accessible via the internet), please email us at support@metacdn.com and we can hold your hand through the process!

Site accelerator generated domains are of the form yoursite.sa.metacdn.com where 'yoursite' is a unique site name chosen by you.

For CMS customers, we have put together an audiovisual guide you can follow (for the example videos we use Wordpress): http://www.metacdn.com/speed-up-wordpress/  

Once you have the accelerator domain, you either need to:

OR
  • Modify your web application code to reference static page assets (css/js/img etc) via the accelerated domain.  E.g. your page html will change from www.yoursite.com/image.jpg to yoursite.sa.metacdn.com/image.jpg.  In this configuration your web server will continue to serve page html, but our network will supply the page assets.
  • Best integration practice is to use your own cname to hide the MetaCDN accelerated domain.  This involves modifying your DNS records to create a subdomain that refers to the accelerated domain, e.g. cdn.yoursite.com CNAME to yoursite.sa.metacdn.com.  This is covered in more detail in http://support.metacdn.com/entries/22321698-Mapping-CNAMEs-to-an-accelerated-domain.
 
For optimising CDN performance, you can set your web server to set cache headers to tell the accelerator how long you wish to cache assets for before the CDN asks for a fresh copy from your server.  This is covered in http://support.metacdn.com/entries/23132358-Optimising-your-website-caching-behaviour-for-MetaCDN.

 

The next section steps through the accelerating process.

 

Creating a site accelerator - Step 1

 
  1. Log into the web portal and navigate to the site accelerator section (Manage -> Websites).
  2. Prepare to enter in the information required to use your site: origin domain (your web server domain), site name (the generated accelerated url will use this - e.g. sitename.sa.metacdn.com) and any cname(s) you wish to use.  Note that you can add cnames at a later time - you don't have to add them now if you're not sure, or want to trial the system.
  3. Click continue and confirm your details are correct.
  4. The system will go and provision the accelerator on our network.  This can take up to 90 minutes - the system will send you an email/internal notification when it is complete.  We will give you the accelerator url (e.g. yoursite.sa.metacdn.com).  Do not start integrating the accelerator url until the provisioning is complete. 

Integrating the site accelerator domain with your web application - Step 2

Below is a flow chart to assist you in deciding the best way to utilise the accelerated MetaCDN domain for your website.  Most web servers support automatic replacement/rewriting of host domains, so you should not have to manually replace your web server domain with the accelerated domain in most cases! For nginx, you can use the HttpRewriteModule (flowchart needs updating...).

 SiteAccelFlow.png

Preparing your web (origin) server for use with a site accelerator

The diagram below shows a typical relationship between your internet users, our site accelerator (CDN) and your origin server.  The shared proxy cache may or may not exist depending on where your users are accessing your site from.

cache-levels.png

 

Since the site accelerator (Gateway Cache) sits between the users and your web server, there are two integration options you can use:

  • Fully fronting your web server with the site accelerator.  All requests will go through your site accelerator.  This option is suitable for static websites and simple dynamic websites which are not expected to change often.  In this configuration the site accelerator will cache everything - html, images, the works.
  • Assets only.  Some web requests will go through your site accelerator.  This option is most commonly used for sites involving dynamic html (e.g. shopping cart sites) or web sites containing content that changes often.  In this configuration the site accelerator will cache some page assets (css,js,images) according to how you configure your CMS/web server.  Since your html pages are dynamic, there is no point in caching them.  Page requests will go to your web server as per usual.

Fully fronting your web server with a site accelerator

This option involves inserting our site accelerator between your server and your users.  You will need to set the origin for your accelerator to be your web server (so it knows where to request things when it receives client requests that are not cached).  You then need to point your site's domain name at our accelerator (so that your internet client requests go through us, instead of direct to your web server).  This option is ideal if the content on your site changes infrequently.  You will receive the greatest speed increase, the tradeoff being cache latency if you need to change your content (which can be worked around using cache invalidation requests).

For example, if your website domain is www.example.com, the setup steps (are:

  1. Set up a "serving" domain, e.g. origin.example.com, not www.example.com (this may involve creating a new DNS entry with your DNS provider) that points to your web server IP/DNS address.  Ensure that your server is configured to accept requests from this domain.  Test that your server is accessible via the new domain (give the DNS entry time to propagate - usually around one hour).
  2. Create your site accelerator, specifying the serving domain created in step (1) to be the origin.  Add your web site's primary domain (www.example.com) as a cname when creating the accelerator.  This will allow the site accelerator to accept requests via your original domain.  Once ready, the site accelerator will be accessible using our MetaCDN generated domain - {site name}.sa.metacdn.com
  3. Test the site accelerator is correctly fetching data from your web host by using your browser to view your metacdn generated domain, {site name}.sa.metacdn.com.  If things were set up correctly, you should see your original website appear in the browser.
  4. Configure your web server to set the appropriate cache headers for the expected lifetime of your web content; Refer to our caching guide here.
  5. Once you are satisfied your web page is being served via the accelerator correctly, modify the dns entry for www.example.com to be a cname for the metacdn domain ({site name}.sa.metacdn.com).  Once the DNS change has propagated, your customers will be accessing your site via our site accelerator.

Using a site accelerator to serve page assets only

This option involves using the site accelerator to serve some of your webpage assets (css,js,pictures,videos etc).  Typically, you should use the accelerator to do all the 'heavy lifting' so that your server is freed to concentrate its resources on other serving tasks.  

Our own website uses this approach - if you look at the source for our homepage (CTRL-u on most browsers), you can see we use the HTML base element to serve assets from our accelerated url, metacdn.sa.metacdn.com:

<base href="http://metacdn.sa.metacdn.com"/>

		<title>MetaCDN: Cloud CDN (Content Delivery Network) | Video Encoding | Video Streaming</title>
        <meta name="server" content="www.metacdn.com"/>
		<meta name="title" content="MetaCDN - Grow your business, not your infrastructure." />

This option is most appropriate for dynamic websites (e.g. most CMS sites and shopping cart applications).  To do this, your dynamically generated html pages will be modified so that some assets are requested via one or more new domains that will point to our site accelerator.

The integration process is as follows:

  1. Create/Edit the DNS entries for any domain aliases (cnames) you created/added for your site accelerator.  Configure your cname(s) to point to the MetaCDN generated site accelerator domain ({site name}.sa.metacdn.com.  Wait for the DNS changes to propagate (usually up to one hour).
  2. Test the site accelerator (and domain aliases) by using a browser to access the domains.  This involves typing in the site accelerator domain (e.g. yoursite.sa.metacdn.com) and each of your cname(s) into a browser search bar.  You can try GETting specific assets (e.g. yoursite.sa.metacdn.com/images/myimage.jpg) if there is no default response for the base domain.
  3. If configured correctly, you should see a response from your webserver - probably the home page of your web application.  The response may not look correct, but this is ok - we are just testing that the site accelerator is fetching from your origin correctly.  It is not going to be used to fetch pages.
  4. Modify your web server and/or CMS code to replace/rewrite your original hostname with your domain aliases (or site accelerator domain if no aliases) when generating the html code.  Guides for doing this are shown under the headings below for various CMS options.
  5. Configure your web server/CMS to set the appropriate cache headers for the expected lifetime of your web content; Refer to our caching guide here.
  6. Enable the changes to your CMS and/or web server (if applicable).  If done correctly, you should be able to access your web site via the usual domain with everything displaying correctly.  Looking at the page source, you will see assets being served via the site accelerator domains.  If working correctly, you should see something like the example html page snippet shown below (one of our customers - site accelerator alias is cdn.workoutworld.com.au).  Note the assets are being fetched via the site accelerator alias.
  7. Remember that when using this configuration, your web server still has to be able to serve HTML quickly to the user's browser before it can start loading assets (and take advantage of the site accelerator).  The addition of the site accelerator can only fix such issues if it is fully fronting your site.  If you do not want to front your site with the accelerator, you will need to tune your web server/database/cms stack to improve your first byte/html serving time.  Depending on the technology you are using, we may be able to help - email us at support if in doubt. 

examplesa.png

 

Integration with Content Management Systems (CMS)

Using the Drupal CDN plugin

If you use the Drupal Content Management System (CMS) on your website, there is a plugin available that allows you to quickly utilise MetaCDN to accelerate your website. This module provide easy Content Delivery Network integration for Drupal sites. It alters file URLs, so that files are downloaded from MetaCDN instead of your web server. 

Follow our step by step integration guide for Drupal here.

Using the WordPress CDN plugin

Do you use Wordpress as your content management system? MetaCDN is pre-integrated into the very popular W3 Total Cache plugin for Wordpress. W3 Total Cache improves the user experience of your site by improving your server performance, caching every aspect of your site, reducing the download times and providing transparent content delivery network (CDN) integration via MetaCDN. Note that this plugin only works with self hosted or third-party hosted (e.g. not wordpress.com) blogs.

Follow our step by step integration guide for Wordpress here.

Using the Joomla! CDN plugin

Joomla is one of the world’s most popular open source CMS (content management systems). With millions of websites running on Joomla, the software is used by individuals, small & medium-sized businesses, and large organizations worldwide to easily create & build a variety of websites & web-enabled applications. CDN for Joomla! is an extension for Joomla! that allows for easy integration with a Content Delivery Network (CDN).

Follow our step by step integration guide for Joomla here.

Using the Magento integration

The Magento eCommerce platform serves more than 110,000 merchants worldwide and is supported by a global ecosystem of solution partners and third-party developers. Magento is a feature-rich, open-source, enterprise-class platform that offers merchants a high degree of flexibility and control over the user experience, catalog, content and functionality of their online store. Integration with Magento can be performed by simply making a small configuration change to your Magento Admin Panel.

Follow our step by step integration guide for Magento here.

Integration with Web Servers (Advanced)

Using the Apache mod_cdn module

Is your website hosted on an Apache based webserver? mod_cdn is an apache2 module developed at Internap that makes CDNs easier to use by automatically "CDNifying" some HTML content and "originifying" the origin apache server to send proper headers, validate authentication tokens, etc. mod_cdn is meant to be installed and configured on a CDN customer's origin server. With mod_cdn, turning on a CDN for your website is as easy as setting up a simple apache module.

Follow our step by step integration guide for Apache here.

Using IIS (Internet Information Services) URL Rewriting

Follow our step by step integration guide for IIS here (coming soon).

Manual Integration

You can also manually integrate MetaCDN onto your own website by replacing your existing links to your website assets (such as javascript, css and images) in your HTML code to MetaCDN links. 

Follow our step by step setup integration for manual integration here.

Post-integration optimisation

After enabling your MetaCDN website integration, we recommend following the MetaCDN optimisation guide here.

 

Third party tools for testing webpage speed

We use and recommend the following third party sites to test your website performance.  You can use them to your own advantage to work out where the bottlenecks in your page serving might be (and test that our site accelerator is doing its job!)

Other resources

A good down-to-earth explanation by Ryan Tomayko of the caching flow/validation that goes on between a gateway cache (which a site accelerator is) and the origin web server: http://tomayko.com/writings/things-caches-do

Have more questions? Submit a request