I talked about moving my blog hosted on WordPress.com to my custom domain and hosting it on my server. It was a move I had wanted to make for a long time.
Today, I am going to don my technical hat and get down to the nitty-gritty of my current setup. If you are not very technical-minded, I’d still request you to read through it, on the off chance that you may learn something useful. After all, I have been told that I’m good at explaining overly technical concepts in simple words.
What is a stack
A stack, in every-day life concepts, is a pile of objects arranged neatly on top of each other. In computer programming concepts, a stack is a particular kind of data structure used to store and manipulate data. In systems administration and server concepts, a stack is a pile of different technologies arranged neatly on top of each other. The latter is the type of stack I will be talking about. More to the point, I will be talking about what technologies I use behind blog.ayaz.pk to serve you this article.
blog.ayaz.pk is hosted on a super-charged Linode cloud server. I mention super-charged because very recently Linode did a super cool thing and upgraded their infrastructure to support faster and efficient access and performance across all their customer servers. This included SSD hard-disks, faster CPUs, faster network pipes, more RAM, and an increased monthly bandwidth limit — without additional costs. I couldn’t be happier.
It’s 64-bit Debian GNU/Linux. Having been a Slackware aficionado for years, I have now become a big fan of Debian. If I wasn’t using Debian so much, I may probably have gone with ArchLinux. Nevertheless, for now, it’s Debian.
A website’s stack is a very interesting topic to read about. It is also mind-blowingly technical. Allow me, then, to blow your mind. This is the stack that service blog.ayaz.pk:
Varnish is a web application cache. It is also known as a web application accelerator. It sits in front of your web servers, and caches the hell out of it. It is mind-numbingly fast. When the Varnish guys say that Varnish “typically speeds up delivery with a factor of 300 – 1000x”, they aren’t kidding. I’ve done benchmarks on blog.ayaz.pk with and without Varnish, and I can say, safely, that with Varnish, my mind indeed became numb after being exposed to its awesomeness.
Nginx is a light-weight beast of a web server. It’s goddamn fast and efficient! When I was planning moving my blog, I initially thought of using Apache as a web server. However, I decided I would go with Nginx. And I am glad I did. It is light on server resources, its worker model is robust and efficient, it’s simple to configure, and very flexible.
PHP-FPM is an alternative PHP FastCGI implementation that is designed to serve bigger and busier websites. It gels so seamlessly with Nginx that I had simply no choice to fall for it.
MySQL is MySQL, the world’s most popular open source database.
This blog is powered by the wonderful WordPress blogging platform. I dabbled with the idea of throwing together a minimal blogging system with Python and Flask, but decided against it because in this day and age, a blogging platform is more than system for managing blog posts. WordPress works extremely well.
This is it!
Pretty cool, eh? If you need help with individual configuration of the technologies used across the stack, be sure to give me a nudge and I’d be more than happy to help you.