The rise in popularity of nginx and the steady decline of Apache in the web server market has caused many to believe that the choice has become clear cut for new deployments. Indeed, in my most recent larger scale server setup I ended up choosing nginx for the job - but should I have?
The internet appears to have fallen out of love with Apache, the faithful workhorse that has dominated the landscape for the past decade plus. While Apache still powers the majority of websites out there, it has steadily lost ground to nginx (engine-x) over the past few years.
Nginx has become popular due to its event driven design which can make better use of today's computer hardware that Apache's process driven design. The end result is that nginx can serve more concurrent clients with higher throughput than Apache on the same hardware. In some cases. The often overlooked condition with the choice is what exactly you're going to be doing with your servers.
Nginx excels at serving static content, it can do it more efficiently than Apache can, but Apache can serve static content quickly as well. Static content is the easy stuff for any web server so high traffic sites strive to generate static content from their more complicated back end systems in order to fulfill the demand of their users quickly. Throw PHP in the mix and things get a lot more difficult. Read full article