What Is A CDN?
A content delivery network or content distribution network (CDN) is a system of computers containing copies of data, placed at various points in a network so as to maximize bandwidth for access to the data from clients throughout the network. A client accesses a copy of the data near to the client, as opposed to all clients accessing the same central server, so as to avoid bottleneck near that server. A cdn will increase speed and efficiency for your blog.
Ok, let’s begin. I have debian box for the tests.
First, we have host example.com , we need to create CNAME cdn.example.com in our bind zone. After that we will install lighttpd to serve cdn contents ->
apt-get install lighttpd
and nginx with varnish for everything else 🙂
In my lighttpd.conf I put line to change the default port to 88
server.port = 88
After that I create vhost.conf with:
etag.use-inode = “enable”
etag.use-mtime = “enable”
etag.use-size = “enable”
static-file.etags = “enable”
###### CDN FILES via WordPress Upload ##############
$HTTP["host"] == “cdn.friendbg.net”{
server.document-root = “/var/www/cdn”
accesslog.filename = “/var/log/lighttpd/cdn.access.log”
# Set max age
$HTTP["url"] =~ “^/” {
expire.url = ( “” => “access 60 days” )
}
}
After this restart the lighttpd daemon.
So .. now go to wp-admin , settings , media and go to Uploading Files section.
Now change the directory “Store uploads in this folder” to “/var/www/cdn” and “Full URL path to files” to https://cdn.example.com:88
Don’t forget to change the permissions to 777 or to www-data to directory /var/www/cdn
With this change every file uploaded to your blog will be stored to /var/www/cdn and will be accessed by https://cdn.example.com:88
Now is time to install wp super cache plugin and after the successful install we need to configure it.
Go to Settings,WP super cache , WP Super Cache Settings , CDN and check this: Enable CDN Support
On Off-site URL : https://cdn.example.com:88
In Include directories I put only wp-content folder.
Don’t forget to enable the plugin!
So we my copy the directory wp-content to /var/www/cnd or simple create a link to it like this
cd /var/www/cdn ; ln -fs /var/www/blog/wp-content
Now we have working blog with static content served by cdn lighttpd daemon 🙂
Other way to optimize your blog is to install php eAccelerator.
Install it and create eaccelerator.ini in /etc/php5/conf.d/ with those settings:
extension=”eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/var/cache/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
After that
mkdir /var/cache/eaccelerator ; chmod 777 /var/cache/eaccelerator
Now restart the php daemon. That’s it ! 🙂