Getting Your Resources to Distant Users Faster
Why You Need a CDN/Cookieless Domain
The CDN/Cookieless domain
feature, found on the
Pro
Features
tab, is used to load your static files over a CDN, or a cookieless
domain. The plugin
does this by rewriting the urls of the static files, so they are loaded
from the CDN or
cookieless domain. When this feature is enabled and configured, the
plugin parses the HTML for
the urls to all your static files and modify them with the
CDN/cookieless domain that was
configured. This happens whether it was a relative or absolute url. The
following example shows
the modified urls if your static domain was static.mydomain.com and your
main domain was
www.mydomain.com
Example 4.1. Urls to Static Files Modified with CDN Domains
Original Urls.
<link rel="stylesheet" href="/media/system/css/frontediting.css" type="text/css" /> <script src="/media/jui/js/jquery.min.js" type="text/javascript"></script> <img src="http://www.mydomain.com/screenshots/rocketlauncher/frontpage/showcase/optimizweb.png" alt="" />
Modified Urls.
<link rel="stylesheet" href="//static.mydomain.com/media/system/css/frontediting.css" type="text/css" /> <script src="//static.mydomain.com/media/jui/js/jquery.min.js" type="text/javascript"></script> <img src="//static.mydomain.com/screenshots/rocketlauncher/frontpage/showcase/optimizweb.png" alt="" />
A CDN, or Content Delivery Network, is a distributed system of proxy servers that deliver web content to a user based on his geographical location. The CDN copies the files of a website to a network of servers that are dispersed geographically at different locations and the server closest to the user responds to the request. The closer the server is to the user geographically, the faster the content is delivered.
A cookieless domain is a separate domain, sometimes a subdomain, that aliases your main domain, but care is taken not to set any cookies on the cookieless domain. The trouble with cookies is that once your server sets a cookie for your domain, all subsequent HTTP requests to that domain must include the cookie even if the server has no use for the cookie, as in the case of static contents like css, javascript and image files. By serving your static contents from cookieless domains, you eliminate useless codes from the request headers, improving performance.
Before enabling this feature
In order to use this feature, you need to have the CDN domain for a pull-zone from a CDN provider or have a static cookieless domain set up. Additionally, this feature is only available in the pro version of the plugin so if you haven't already, now is a good time to subscribe for JCH Optimize Pro.
Procedure 4.3. Configuring the CDN/Cookieless Domain feature
-
Set Up CDN or Cookieless Domain
Set up your CDN pull-zone or your cookieless domain.
-
Set up CDN
-
Sign up with a CDN provider that offers pull zones. The following popular CDNs should work with JCH Optimize:
MaxCDN CDNify Amazon CloudFront KeyCDN Note CloudFlare does not work with JCH Optimize in this way. You do not need a plugin to configure CloudFlare. Please refer to their documentation or support to get assistance in configuring CloudFlare.
-
Refer to your provider's documentation or support to set up your pull zone. They should provide you with a CDN domain that you should request your static resources from. These requests will be pulled from your website, the origin server, and cached and served from their servers.
-
-
Set up Cookieless Domain
-
The easiest way to do this is to create a subdomain. You can do this inside cpanel of your web host. Make sure to set the document root of the subdomain to the document root of the website.
Creating a Subdomain Inside CPanel
Alternatively you could register a new domain name to use as your static cookieless domain and create a CNAME record in your DNS tables aliasing your static domain to your main domain.
Aliasing Static Domain Using CNAME Record
-
If you used a subdomain, ensure to configure your CMS to set cookies for only www.mydomain.com and not the top-level domain mydomain.com. Refer to your platform's documentation on how to set the cookie domain.
-
-
-
Enter the configured CDN domain or cookieless domain and enable the feature. You can also set up multiple domains up to a number of three to parralelize downloads across hostnames. The plugin will alternate between the configured domains when it is modifying the urls of the static files.
Configuring the CDN/Cookieless Domain Feature
-
Select the file types that you want to be loaded over the static domain(s). All file types are selected by default.