MetaCDN hidden

MetaCDN is a "4th generation" content delivery network (CDN) provider that accelerates your website with unparalleled speed and reliability. Our intelligent Multi-CDN service has you covered with 120+ Points of Presence (PoPs) worldwide. We dynamically leverage infrastructure from EdgeCast, MaxCDN Enterprise, Amazon Cloudfront and Fastly to deliver the best possible experience for your customers, no matter where they are.

Setup MetaCDN today and experience the difference. You can be up and running in minutes. Click SET IT UP, and MetaCDN will prompt you for some for some additional information to finalize the setup process.

Our Engine Yard integration gives you full access to all features of the MetaCDN Website Accelerator product, including:

  • 120+ Total Active Points of Presence
  • Performance Based Routing With Multiple Active CDN Providers
  • Automatic Failover
  • Secure Shared SSL
  • API Access
  • Analytics and Reporting
  • Quick Purge
  • Push & Pull Capabilities

Basic

from $20/month

Basic plan includes $5 monthly service credit.

Credits are consumed at our standard rates (based on request, bandwidth and storage usage). Unused credits roll over into next month.

Lite

from $50/month

Lite plan includes $50 monthly service credit.

Credits are consumed at our standard rates (based on request, bandwidth and storage usage). Unused credits roll over into next month.

Pro

from $100/month

Pro plan includes $110 monthly service credit.

Credits are consumed at our standard rates (based on request, bandwidth and storage usage). Unused credits roll over into next month.

Instructions for Ruby

Ruby on Rails (RoR) is the most popular web framework in the Ruby community. We will use Spree Commerce as an example. Spree Commerce is an open source e-commerce solution based on Ruby on Rails. However, these changes are generic and applicable to most RoR applications.

  1. Make sure you have a successfully deployed your RoR application on EngineYard.
  2. You will need a deployed Site Accelerator service from MetaCDN. Skip to step 3 if you have already done this.
  3. Use your Domain Name that you have configured in your application Environment as the website origin. In our case, it is rails.ey.metacdn.net Give it a memorable name and add any CNAMEs you wish to use.
  4. Wait for about 10-15 minutes until the Website Accelerator service is READY to use. You will be notified by email once it's ready, or you can check via the MetaCDN portal.
  5. Grab the website accelerator domain (*.sa.metacdn.com), or the CNAME you wish to use. Your configiration can also be accessed as follows:
    EY::Config.get(:MetaCDN, "METACDN_ACC_URL")
    EY::Config.get(:MetaCDN, "METACDN_SITE_NAME")
    EY::Config.get(:MetaCDN, "METACDN_CNAMES")
  6. Configure Rails assets to load from MetaCDN
    1. cd into the environment directory of your root application (config/environments for our demo site)
    2. Edit the environments config file based on which environment you are in (development.rb, production.rb)
    3. Add or modify config.action_controller.asset_host field. In our demo site, we add this line to development.rb for testing purpose:
      config.action_controller.asset_host = EY::Config.get(:MetaCDN, "METACDN_ACC_URL")
      or alternative set it manually:
      config.action_controller.asset_host = "http://meta-spree.sa.metacdn.com"
    4. Redeploy your app to EngineYard.
  7. Verify the assets of your Rails site are loaded from MetaCDN domain meta-spree.sa.metacdn.com
  8. Cache headers optimisation There are a few things we can do to further optimise the website caching behaviour and deliver a better experience for the customers. We have a generic guide for cache control here, and for EngineYard, here are things we can do:
    1. config.static_cache_control = 'public, max-age=86400'. This header allows you specify the maximum amount of time that an asset will be considered valid, and whether the response should be considered as cacheable (public) or not (private) by intermediary caches. You can tweak the max-age as you need.
    2. config.assets.digest = true. This header enables the use of MD5 fingerprints in the asset names. When enabled, the file name will be updated if there is any change of your assets. By doing this, you don't need to refresh (purge, invalidate) your assets should you make any changes to the file. Refer to this link (http://guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care) for more details about asset pipeline of Rails.

Please log in if you would like to set up the service.