A content delivery network (CDN) is a service you can integrate with your site to deliver files, typically CSS, JS and image files, from data center locations closest to where your users live for increased speed and uptime performance.
In this post, we’re going to take a look at BunnyCDN, a simple CDN solution that’s cost effective and compatible with WordPress.
Table of Contents
What is BunnyCDN?
Founded in 2015, BunnyCDN is a fast yet cost-effective CDN service based out of Slovenia. It’s configured over 50,000 pull zones and delivers over 40,000TB worth of data every month.
It provides a number of different CDN solutions, including worldwide data center locations, video delivery, software distribution and cloud storage. It also has six data centers in Oceania, making it a powerful solution for companies serving customers in Australia and New Zealand.
- 39 Data Centers – BunnyCDN’s network is made up of 39 data center locations across six continents. Most are located in Europe, North America and Asia.
- User-Friendly Dashboard – BunnyCDN’s UI is fast, easy to navigate and well designed.
- Free SSL Certificate – A free SSL certificate is available from Let’s Encrypt. You can also use a third-party certificate if you wish.
- Security – Along with SSL certificates and global data centers, BunnyCDN allows you to block users and IP addresses by country, blacklist IP addresses, customize account access by role, and more.
- Pull Zone Management – The intuitive UI makes it easy to configure and manage the pull zones you create.
- Reports – Monitor how much bandwidth you’ve served and cached as well as how much traffic and requests you’ve received over a particular period of time or in real time.
- Video Delivery – The network’s infrastructure uses global data centers, an 18Tbps network backbone and NVMe SSD’s to guarantee smooth video playback. This can be used alongside BunnyCDN’s cloud storage service. Live streaming is not available at this time.
- Cloud Storage – There’s no charge for files passed through BunnyCDN’s network, but you can store your files on its cloud storage servers at a rate of $0.01/GB per month.
- Custom CDN Hostnames – Add your own subdomain as a hostname to change the URL’s for files passed through BunnyCDN’s network. An example would be using “cdn.yourdomain.com” rather than the default version.
- Bunny Optimizer – A simple query API that allows you to deliver images faster and with lower bandwidth through manipulation and optimization. It also includes minification for CSS and JS files. This feature costs an additional $9.50/month.
Integrating BunnyCDN with your site is incredibly easy, especially if you use WordPress. You can create an account and use the service free of charge for 14 days or until you’ve used 1,000GB.
You’ll need to create your first pull zone as soon as you sign in, which means configuring the following options:
- Name – Your files use the hostname “b-cdn.net” by default, and you can add a name in this field to make the hostname unique for your pull zone, such as “mhthemes.b-cdn.net”.
- Origin – The URL where your files are hosted. This is your domain if you don’t already store and serve your files offsite with a service like Amazon S3.
- Tier – Choose which pricing plan you’d like to use.
- Pricing Zones – All four pricing zones are enabled by default, but you can cut costs by disabling specific ones. Europe and North America are bundled together as are Asia and Oceania. South America and South Africa have their own pricing zone each.
Once you add a pull zone to your account, all you need to do is install the BunnyCDN WordPress plugin and input your hostname to link your site to the network.
The plugin is simple, but it allows you to control quite a few things in regards to your zone. You can exclude certain file types, for starters. PHP files are excluded by default.
You can also specify which directories content should be pulled from. The directories “wp-content” and “wp-includes” are used by default.
Purging your zone’s cache can be done once you input an API key for it, and you can also restrict access to the plugin to admins.
Back inside the BunnyCDN dashboard, you can set up a custom hostname, such as “cdn.yourdomain.com,” to represent your pull zone by navigating to Pull Zones → Choose Pull Zone → General and entering it in the Add Custom Hostname field.
Furthermore, if you use WP Rocket, you’ll need to enter your BunnyCDN hostname in the CDN section of its settings page.
The BunnyCDN Dashboard
BunnyCDN’s dashboard is intuitive and well designed. It has seven sections, including the Overview tab, which provides a snapshot of the bandwidth you’ve used and the requests you’ve served. You’ll also see totals for the balance, usage and cost/GB you’ve accrued for every pull zone you manage combined.
You’ll see screenshots and overviews of the various tabs within the dashboard throughout this post, so here’s a quick rundown of the remaining six:
- Pull Zones – Manage and create new pull zones. This tab is broken down into 10 additional sections, which include Caching, Pricing and Security.
- Storage – Manage and create Storage Zones, which allow you to store large files offsite for better performance.
- Statistics – A snapshot of the bandwidth you’ve served and traffic you’ve received over the last 30 days or a given timeframe. You can also filter data by pull zone and data center.
- Purge – Purge individual URLs or entire pull zones.
- Logs – View and download logs by HTTP response code. You’ll be able to see which files triggered each code, its size and when the code was triggered.
- Monitoring – Monitor your throughput by Mbps, requests per second and cache hit in real time from all data centers.
With our test site in the United States, our page load time from Pingdom’s Washington D.C. server was as low as 310ms. Load times from its European and Australian servers were under 2s, making this one of the fastest CDN services available.
You can configure a few different caching protocols in the Caching subsection of the Pull Zone Management settings. This includes the File Cache Expiration Time setting, which allows you to control how long BunnyCDN stores cached versions of your files.
It uses your origin server’s protocol by default, but you can override this by as few as three minutes or as long as one year. You can also choose not to cache at all.
You can also choose to vary how certain parameters are cached so their different versions are treated as separate files. For example, enabling Vary Cache for URL query strings will cause the files “image.jpg” and “image.jpg?v=1” to be treated as two separate files.
You can purge the cache from anywhere in the Pull Zone Management section. The Purge tab has two sections. One allows you to purge individual files by inputting their full URL’s, as stated before. The other allows you to purge individual pull zones.
BunnyCDN has a number of different security components enabled by default. You can disable these and enable additional settings as you see fit. An SSL certificate from Let’s Encyrpt, for example, is enabled by default, and you can enable a setting that forces SSL for unencrypted files.
The Security subsection for each pull zone is where you can configure the majority of these settings. You can choose to enable a setting that returns 403 errors for users who attempt to visit your network’s root path directly.
Threats from malicious referrers and IP’s are blocked automatically, but you can also add them manually on this page. It also has a place for you to enable AWS S3 authentication. This signs all requests to your origin URL’s with the latest AWS headers.
When you’re in the Pull Zone Management area of the dashboard, you’ll find a subsection called Edge Rules. This is where you can set up a number of different triggers to control the way BunnyCDN’s edge servers behave.
Edge rules operate via simple if this, then that conditions where you choose an action for the server to perform along with the conditions that will trigger that action.
A few actions you can create conditions for include Block Request, Force Download, Force SSL, Change Origin URL and Override Cache Time. A few conditions you can add include Request URL, Request Header, Response Header, Country Code and Remote IP. You can also add multiple triggers per condition.
Overall, BunnyCDN is a powerful and effective CDN service that’s incredibly easy to set up and even simpler to manage. It’s grown quite a bit since it was founded, well enough to compete with the most well-known names in the industry.
The company’s cloud storage and Bunny Optimizer services really make it stand out from the rest. While other companies offer their own versions of these services, they don’t offer simple cloud storage solutions or as many optimization features as BunnyCDN.
This company also offers one of the most cost-effective CDN services in the industry. You can choose between two different pricing structures. Location-based pricing gives you access to BunnyCDN’s entire network of data centers. You’re charged as little as $0.01/GB for requests from North America and Europe and as high as $0.06/GB from South Africa.
The volume-based pricing plan charges you based on the amount of bandwidth you consume every month. Your first 500TB are charged at a rate of $0.005/GB, your next 500TB at $0.004/GB, the next 1PB at $0.003/GB while 2PB+ is charged at $0.0025/GB.
Cloud storage, which is an optional service, costs an additional $0.01/GB per month. Bunny Optimizer, another optional service, adds $9.50/month.
You can integrate BunnyCDN with your site and try it free of charge for 14 days.
- Homepage: BunnyCDN