Nginx + PHP-FPM is a great web server for WordPress (or probably anything PHP for that matter). It’s especially great if you use PHP’s OPcache (which is easy to configure and is built in from 5.5). We’ve all but given up on Apache here at The Shipyard, though I’m sure it’ll be around for quite a while. Fare ye well old timer.
We’ve had some really great results running dynamic sites on Nginx with PHP-FPM (with OPcache) and Memcached. For a static cache we’ve been experimenting recently with Nginx’s FastCGI cache which is really fast (20ms to serve a cached page!) even on a tiny, underpowered VPS. It’s a relief for us to be able to create a full-page cache and not have to bother with W3 Total Cache or WP Super Cache etc. It’s also way faster.
Before we moved our site to it’s new home we were on a shared host with Apache and all that junk. We decided to go the whole hog and create the ultimate ”Hipster Stack”© for ourselves!
Now we’re on a Digital Ocean droplet. The site is served entirely over SSL on Ubuntu 14.04 with Nginx + HHVM (with a PHP-FPM fallback for when HHVM decides to stop working, which happens on occasion). We’re using Memcached as an object cache (I tried Redis instead of Memcached for a bit, but the plugin was buggy) and we’re running MariaDB instead of MySQL because open source.
We handle our plugin dependencies with Composer, compile our Sass and minify our JavaScript with Grunt (though Gulp is much more hipster I suppose) and deploy our code with Capistrano. We developed everything locally using Vagrant (VVV to be precise). I also have a beard, drink IPA and right now I’m wearing a checked shirt.
HHVM is incredible. With a warm compiler the site is super fast, even over SSL. We’re not using a FastCGI cache here simply as an experiment to see how well the site works without it. So far it’s worked really well!
Alex from Örestad Linux (our sister-company) who did most of the work has written a more technical article about the setup.