This book is a complete resource for anyone using Nginx web server. It really includes just about everything you need to know from configuration at compile time, optimising for your hardware resources, to writing modules and extensions. It is a valuable resource, and I enjoyed reading through it.
If you weren’t already familiar with Nginx’s power, you will want to take the time to read through the first chapter (Installing Nginx Core and Modules from Source) as the author explains how different Nginx can perform best in the environment it’s being deployed on. The foundations are essential this to perform well.
The book is mostly useful to anyone who is actively deploying, running and maintaining Nginx on a network. It has a lot of information that you will probably refer back to.
Even though clear and descriptive explanations are given to every compile argument and configuration lines, it is hard to digest every part. It is very useful to read through and educate yourself on all of the possibilities. I would probably say that the most useful part of this book is the index as you can always use this as a good reference point.
If you are interested in writing modules for Nginx then there is a comprehensive section about this. Even if you have no desire to do this it is worth reading about just to see how you can extend Nginx functionality if ever you needed to. I thought the example here was very good. Usually, I have no need to write in C but I found this exercise very fun and informative.
It might be worth mentioning that if you’re used to using Apache and are thinking of moving to Nginx, although the book does not include any Apache to Nginx migration examples I found this book to include all of the answers to any questions you might have if you are migrating.
So, in summary, the essential elements of this book are
- Understanding how Nginx works and more importantly, focusing on the event loop which separates it from other web server software.
- Being able to compile Nginx from source choosing the options that best suit your environment.
- Configuring core modules in to make the best use of your hardware resources (ie.. memory and CPU management etc…).
- How Nginx directives work (ie.. rewrite regex, load balancing, proxy etc…).
- Installing and developing modules.