Картинка верна, хотя у меня есть вопросы.
Вкраце это работает так
apache - это комбайн, который умеет работать со 100500 протоколами включая http. Для него него есть огромное количество модулей, типа webDav, svn, куча разных авторизаций итд. основная проблема apache - он тяжелый на подъем. На каждый чих он создает новый поток и запускает себя снова. Т.е грубо говоря, если параллельно качается 10 файлов, то запущено 10 апачей.
nginx - это более легковесный веб сервер, требует меньше ресурсов (в частности памяти) и главное не запускает новые процессы на каждый чих. Тоже имеет множество всего в виде модулей.
---
Как мы знаем, сайты - это такая штука, которая запускается каждый раз с нуля и отрабатывает с нуля снова и снова. Более того, под раздачу попадает не только PHP но и любая статика (картинки, js-ки).
Чтобы облегчить жизнь серверу, ставят прокcирующий nginx, который слушает 80й порт на сервере, принимает входящие и отдает что спрашивают при этом не съедается память. НО есть одно НО =) Если запрос идет к php скрипту, то он перенаправляется на apache, который в свою очередь запустит php.
Проксирующий nginx заметно уменьшит кол-во апачей в памяти а статика будет отдаваться в браузер через системный sendfile (который вроде как как самый быстрый) в купе с keepalive (в одном соединении отдает сразу несколько файлов).
Получается, что apache с браузером работает не напрямую, а через посредника - nginx. а значит важны соответствующие настройки такие как
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
MaxRequestsPerChild 0
+ есть возможность сделать кеширование контента на уровне nginx. Т.е будет сохранятся контент например на 5-10 сек а ключом кеширования будет ссылка/запрос.
max_execution_time - лучше уменьшить до 30 сек. скорее всего после ожидания страницы в 30 секунд, пользователь уйдет.
а повисший скрипт не будет тормозить остальных на 2 минуты.
В итоге, как я понимаю, если из 100 запросов, хоть один подвис то другие за ним тоже будут тупить.
Nginx + php5 хорошая связка, но придется отказаться от htaccess и учесть права доступа к файлам.
apache умеет разруливать так чтобы каждый сайт имел свои права, nginx всегда работает от одного пользователя