All of my discussion forums, including Rise Forums, are powered by the forum software XenForo. I was one of the first people to jump over from the bloated vBulletin to the new Xenforo forum platform that was developed by the original vBulletin developers (i.e. when vBulletin was good).
When I launched Rise Forums, I made sure that the forum loaded quickly. XenForo is a fast piece of software, however I also removed advertisements and made other little tweaks to ensure pages loaded as fast as they could.
One thing I had yet to take advantage of was a content delivery network. It was something I was keen to look at closer.
Speeding Up Your Websites Using a CDN
A content delivery network (CDN) will store a static copy of every page of your website and distribute it to data centres around the world. This greatly reduces the time required to download a page from your website as the CDN data centre is usually much closer to the visitor’s location than the data centre of your hosting company.
Since visitors are viewing a static copy of your website, your hosting bandwidth is greatly reduced. Having so many copies of your website stored around the world also means that in the event of your website going offline, visitors can still view your website through the content delivery network.
I had never taken advantage of a content delivery network with my Xenforo powered forums. This was something I used in the past with vBulletin powered forums, but I experienced some common usability problems associated with turning something dynamic such as a forum into a static website. For example, if someone edited a post or updated their profile avatar, it would not be displayed on older pages until the cache was flushed.
I decided to revisit the idea of using a CDN recently when my friend Brian Jackson joined KeyCDN. He explained the benefits of using a CDN and noted on Rise Forums that I could speed up Rise Forums for less than a dollar a month.
It sounded too good to be true, however the pricing page of KeyCDN states that one GB of bandwidth costs only $0.04 and the price per GB of data goes down as your total bandwidth increases. For example, after using 10 TB of data the price up to 50 TB drops to $0.036 per GB in North America and Europe.
The price of $0.04 per GB of data is the same for North America, Europe, Asia, and Australia and New Zealand. Compare that with the pricing of a service such as MaxCDN, which charges $0.06 per GB up to 50 TB in North America and Europe and $0.095 in Asia and Australasia.
All prices are pay as you go. You are not required to sign up to any monthly plans and pay for data you are not ever going to use.
KeyCDN currently have nine data centres in North America, nine in Europe, three in Asia, and one in Australia. Another two are planned in North America, one in Poland, India, Brazil, and South Africa.
KeyCDN boosts delivers your website quickly using a number of techniques.
Below is a list of features of general zone features (stolen from their features page):
- Create several zones
- Use your CNAMEs
- GZip compression
- Live tail on your logs
- Raw log forwarding in real time
- Custom expire headers
- Cross-Origin Resource Sharing (CORS)
- Force downloads
- Hotlink protection (restriction of HTTP referrer)
- Custom rules
- OCSP stapling
- SPDY 3.1
Content delivery networks use a combination of pull and push zone.
A pull zone will retrieve content from your website and create a static version of it. A push zone can be used to upload files directly. This is particularly useful if you want to host large files such as zip files, videos, etc, as it means that you can speed the delivery of these assets around the world.
KeyCDN pull zones boast the following features:
- Instantly purge zone caches or single URLs
- Cache query strings
- Override origin cache-control headers
- Override origin expire headers
- Strip cookies
- Enable canonical headers
- Custom request HTTP header field (X-Pull)
- Custom robots.txt
- Origin shield
Here are some features of a KeyCDN push zone:
- Upload content to your FTP account
- FTP subusers
- Synchronize content with rsync
- Enabled directory listing
- Enabled directory index
- No limit on file size
- HLS and HTTP streaming support
Do not be concerned if a lot of the features of a CDN goes over your head. It is very easy to set up a content delivery network and once you are familiar with the interface, most of the features listed above will make more sense.
How to Speed Up XenForo Forum
My original idea for this article was to write a tutorial that showed you the steps I took to speed up my Xenforo discussion forums using KeyCDN.
However, Brian Jackson recently published a fantastic tutorial entitled “How to Speed Up XenForo Forum” that explained the steps required in great detail.
The tutorial was so good that I used it myself in order to integrate KeyCDN with Rise Forums.
The first thing I did was sign up to KeyCDN. All you need to do is enter your email address and choose a username and password.
Once you have signed up you will be taken to the account overview page that shows that you have 25 GB of traffic remaining.
A confirmation email will also be sent. Click on the link in that email in order to activate your account.
At this stage, I referred back to the tutorial “How to Speed Up XenForo Forum” and followed all of the steps Brian advised.
The only step I had to complete in my KeyCDN account was to create a pull zone.
KeyCDN will then start pulling data from your website into the pull zone.
Next I had to add the following code to my next library/config.php file (using my own pull zone URLs):