How to use CDN with CloudFlare
Important note
This tutorial assumes you have already created a pull zone. If you plan on using custom domains to pull files from CDN you should setup your CNAME records within CloudFlare DNS editor – not at hosting cPanel end!What is CloudFlare
CloudFlare is a free system that acts as a proxy between your visitors and our server. By acting as a proxy, CloudFlare caches content for your site, which lowers the number of requests to our servers, but still allows visitors to access your site.What is CDN
CDN stands for Content Delivery Network, and it works by acting as a reverse proxy that caches all your static contents and serves them to your website visitors from servers spread across the globe, that lowers the number of requests sent to your servers to zero at any given moment as long as the cached files are neither expired nor purged from the network. When the static contents are served to your website visitors from servers that are closer to them than your web server, the website load speed increases which provides a better user experience along with leveraging load off of your web serverThe conflicts
First Conflict
The way CloudFlare works includes appending cookies and custom expiry headers that look like this:|
1 2 3 4 5 6 7 8 9 |
sh-4.1$ curl -I domain.com HTTP/1.1 406 Not Acceptable Server: cloudflare-nginx Date: Tue, 14 Aug 2012 14:31:59 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding,Cookie,User-Agent Expires: Wed, 15 Aug 2012 14:31:59 GMT Set-Cookie: __cfduid=de8b7126ad3841cd0da33c69651231c901344954719; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.domain.com |
Second Conflict
CloudFlare automatically utilizes a load balancer, which dynamically changes the IP address of your website. While this is usually not an issue, but as our system depends on matching the IP address of the origin website with the FQDN/Domain/URL, it will cause a conflict which will result into our servers unable to fetch and cache your static contents and a 502 Bad Gateway error to occur.The solution for the first conflict
We have implemented new option within CP3 (Control Panel v3) which ignores the cookie existence on requested file/files. So after CDN pulls file from origin it will ignore the cookie which came along with file and cache the file successfully. This option is available within the “Settings” tab after you go to “Manage zone” and it’s called “Strip all cookies”. You should select this option and hit UPDATE: