Apache2 vs Nginx for PHP application
The conclusion is that it doesn’t matter which server you are going to chose. The real performance wins are purely on PHP side. Using an accelerator with caching can multiply the number of requests your infrastructure can maintain.
The comparison is incomplete: in any real world high-load situation, when a workload isn’t CPU- or I/O-bound, Nginx will most likely win due to its lower memory footprint and offer considerably higher concurrency.
In any real world high-load situation, add Akamai, and see no difference once again :)
Akamai is a CDN, and its services are relatively expensive. Meanwhile, there are quite a few good examples of high-load services using Nginx as a load balancer and/or traffic manager: http://trends.builtwith.com/topsites/nginx There’s a reason why they use it ;)
If you are talking about WordPress application – you are completely right!
Sberbank ran into IRQ concurrency on its servers. That was a REAL HL problem compared to small problems like which facon of webserver or script-processor or caching engine to choose…
Kirill Andreev and how is that relevant? :) There’s a whole lot of things that can go wrong. Even the simplest of applications depends on layers and layers and layers. There are people who solve or specialize on a specific set of problems. Hardware people specialize on hardware, network admins on networking, developers on application, etc. There are both easy and tricky problems in every domain.
Michael Mikhail Cherviakov yup. I am currently responsible for a rather busy WordPress installation. :)
Blade solves all of minor software problems. Except IRQs, of course; they go for Cisco balancing hardware…
Kirill Andreev I’m glad for you. :) In my experience, nothing solves all the problems, minor or not. When one set of problems is solved, a new set appears.
If a new set appears after solving the current scope of problems, it indicates that planning was flawed. Thinking 2 or even 1,5 steps ahead removes problems for a little (or longer) while.
What kind of ‘IRQ concurrency’ problem was it? Interrupt handling in most modern OS kernels has been quite good lately.
I suspect that those Sberbank’s servers weren’t just web servers …