Я обнаружил, что в Интернете есть много статей, сравнивающих Nginx и Apache. Однако все эти сравнения основаны на стресс-тесте веб-сервера, на котором выполняется код PHP. Я предполагаю, что это в основном связано с тем, что Apache обычно развертывается с PHP в качестве архитектуры LAMP.
Насколько я понимаю, Nginx создан для решения проблемы C10K с архитектурой на основе событий. То есть Nginx должен обслуживать M одновременных запросов с N потоками / процессами. Предполагается, что N намного меньше M. Это большое отличие от Apache, которому требуется M потоков / процессов для обслуживания M одновременных запросов.
Для кода PHP модель программирования не является асинхронной. Каждый веб-запрос будет занимать один поток / процесс, чтобы PHP мог его обработать. Итак, я не понимаю смысла сравнивать Nginx и Apache с кодом PHP.
Архитектура Nginx, основанная на событиях, должна превосходить Apache, особенно когда запросы связаны с операциями ввода-вывода. Например, запросы должны объединять результаты нескольких других веб-служб. Для Apache + PHP каждый запрос может занимать секунды, просто ожидая завершения операции ввода-вывода. Это потребует много потоков / процессов. Для Nginx это не проблема, если используется асинхронное программирование.
Было бы разумнее развернуть Nginx с языком, поддерживающим модель асинхронного программирования?
Я не уверен, какой язык программирования может раскрыть наибольший потенциал Nginx, но это определенно не PHP.