In this post, I’m going to take you to the world of Lightning Fast WordPress using simple WordPress-NGINX Configuration achieved using a powerful package EasyEngine.
Apache is the world’s most used web server. So, why to opt for an NGINX based server. I’m going to start with an image which tells you a well-known secret.
The above analysis tells us the usage percentage of different popular servers in the world based on its usage in all the websites; usage in top 1,000,000; top 100,000; top 10,000 and top 1,000 websites. Apache is overall definitely a very popular web server. But, when it comes to top 10,000 or top 1,000 websites by usage, NGINX surpasses them to be the most widely used web server. It shows that NGINX has definitely an edge over Apache.
Google’s server seems a popular web server in top 1,000. But, it is a costly web server. Further, as it is only popular among top 1,000 websites, it means Google web server is definitely good. But, Google’s Server is not for all. It is a premium service.
Here are some benefits of using nginx in simple language:
- Nginx is fast because it does not need to create a new process for each new request.
- Nginx uses very little memory, especially for static Web pages.
- Nginx can be used with a range of systems.
- Nginx is highly scalable, and performance is not dependent on hardware.
- Nginx is easy to install and configure.
- Nginx has very less CPU load
However, there is an overlooked fact here. Apache is used by a heavy number of top 1,000 websites. So, those websites with best minds on the earth behind them must be getting phenomenal result with Apache too. The thing is Apache needs some tweaking which is not simple to do. Tweaking nginx is easy. Even on low-budget and nil tweaking, nginx gives impressive results.
Before going into the question, why EasyEngine, I should answer what is EasyEngine.
In 2010, one of my website TheApplePirates.com became a hit within a month of its launch. It was getting more than 10,000 pageviews a day. It was my first website to get such a good response. I had invested in just domain name for this website. Hosting was from a free one. So, it was becoming slow after the traffic crossed 5,000 a day mark. It was the first time that I went first to a VPS Server, then to a dedicated server. Being completely in an unknown arena. At that time, I came to know about some packages like Alternate PHP Caching (APC), Varnish, memcached, eAccelerator and other such names. I researched a lot those days and tried to implement few on my server. It took me more than 3 days to make APC working on my server. I know, I’m not a technical guy with any degree or even diploma in computers. But, spending 3 days to make APC work that too without a splendid performance. Its insane.
Anyways, after the recent success of my websites, once again I was forced to try my luck with memcached and nginx. It was real pain to make all these packages to work together. If you have tried to do the same. I’m sorry for your wastage of time. The answer to all these complex installation could be a very simple to use customized Package EasyEngine.
EasyEngine with not more than 3-4 commands can install a nginx based server with PHP5-FPM, MySQL and added features like FastCGI, memcached, Zend OPcache, Google Pagespeed, Postfix. It is a package made especially for WordPress and its performance optimisation. It gives option for a WordPress website to be created with page caching support using optimal setting for either of FastCGI or WP Total Cache or WP Super Cache and also with no page cache. Further, one can use it for WordPress subdomain or sub-directory installation too. Using EasyEngine on a fresh server, one can install 12 types of WordPress install in less than 5 mins. An interesting feature, it tweaks its configuration itself as per available hardware resources. However, for optimal use, I recommend to tweak the configuration of packages included as per your requirements.
EasyEngine blends compatible and latest packages together to give a stable environment. Regular updates are released which are easy to install with a single command. However, the tweaks and settings remain unchanged after update. I’m using SSD-VPS from Virpus Hosting for this website. At Virpus Hosting, by paying just $ 5 per month one can set up a website using EasyEngine to easily support a WordPress blog to handle daily traffic of 1,000-2,000 that too with a page load time of under a sec. If you are a blogging for long, you must think I’m giving false picture. But, this is true. Using EasyEngine along with few plugins that I’ll tell you in coming posts. You can do it without hassle.
The beauty of EasyEngine lies in its simplicity, flexibility, cost effectiveness and performance. I give 5 out of 5 in all these segment to EasyEngine. There is more alternative to EasyEngine – Like LAMP, WAMP, MAMP, XAMPP. But, all are Apache based packages. I would love to test package similar to EasyEngine for nginx if you can suggest some.
Installation of EasyEngine
Installation of EasyEngine is quite simple and Easy. Get a fresh server. If you want for testing, you can use an instance from Amazon EC2, else for deployment of your WordPress blog get a VPS from Virpus Hosting. EasyEngine currently supports Ubuntu and Debian 6/7. I prefer Ubuntu over Debian due to its wide popularity.
Once you get root access to your server via command line (Putty), the first step should be to update the server to latest using following command. Press y, if it needs permission during update.
apt-get update && apt-get upgrade && apt-get dist-upgrade
Next, run the following command. It will install EasyEngine. During the run, you will be asked to enter your name and email id.
wget -qO ee rt.cx/ee4 && sudo bash ee
Once completed, run the below command. It will install MySQL, NGINX, PHP5-FPM, HHVM along with Opcache, WP-CLI, phpMyAdmin, Adminer and other useful packages. Now, it also supports Docker.
Now, you are all set to install your website. Use the below command to install WordPress.
ee site create www.example.com –type=wp
Replace www.example.com with your own domain name. Copy and save WordPress admin Username and Password from the screen.
Now, just point your domain’s dns to the IP address of your server. Once this is done. You can see your blog right away with easy WordPress-NGINX Configuration.
I suggest using CloudFlare for dns hosting and other optimisation. If you are using CloudFlare, you can change the IP address within few seconds to point to your new server.
I would write in subsequent posts about customisation of EasyEngine. Further, I’ll try to make you familiarise with basic architecture of file system in EasyEngine.
If you liked the post, do give a feedback. I would love to hear your response.