Reviewed: July 2013
Nginx (pronounced as ‘Engine X’) is a lean, mean and fast web server. It’s open source, and designed to serve pages fast. We use it as work, and, while it is not as well known as Apache, and maybe not as comprehensive, you don’t need a Ph.D. in chaos theory to understand and write its configuration files!
This book is an excellent, and thorough, introduction to how to set up and use the server. Nginx is a modular server and the core modules, together with the rewrite module, the server-side include module, and the SSL module are covered in sufficient depth that anyone with a reasonable level of sysadmin knowledge would be able to set up the modules properly and safely. Other ‘standard’ modules are covered briefly, but third party modules are not covered at all. At first I thought that was an unfortunate omission, but on reflection, given the speed with which third party modules are developing and changing, that was probably a wise decision.
Once the author has covered all the basics there are a number of interesting and useful chapters covering other related topics. One of them covers using Fast-CGI both with Python and PHP. This is excellent, and includes a basic explanation of what CGI is and how to interface and use Nginx with the PHP-FPM and python based Django frameworks. Another chapter teaches you how to use Nginx as a reverse proxy along with Apache, and a third chapter covers the tricky business of moving your web site from Apache to Nginx.
The only weird thing about this book is the first chapter, which appears to be a potted newbie’s guide to Linux system administration. I’ve no idea why it’s there, perhaps the author’s contract with the publisher specified that the book had to be over 300 pages long? Most people trying to set up a web server will probably know at least some system administration. If that’s the case, my advice is to start at chapter two.
I was impressed by this book (actually I was also very impressed with Nginx) and I would definitely recommend it to anyone coming to Nginx for the first time.