Назад | Перейти на главную страницу

Масштабируемость Nginx + PHP в Windows

Я пытаюсь понять масштабируемость Nginx + PHP под управлением Windows, скажем, 100 запросов, выполняющих среднесрочные операции.

Анализируя исходный код, я увидел:

  1. Nginx запускает сам себя несколько раз в зависимости от конфигурации и / или количества процессоров сервера.

  2. Хотя он использует порты завершения ввода-вывода, каждый рабочий создает только один поток для обработки запросов.

  3. Когда запрос PHP выполнен, Nginx взаимодействует с PHP с помощью FastCGI.

На данный момент, хотя NGinx может продолжить масштабирование, я не вижу в стандартном PHP-коде fastcgi sapi, который масштабируется с использованием нескольких потоков / процессов и портов завершения.

Для unix / linux PHP-FPM решает проблему, потому что он разветвляет дочерние процессы для выполнения задач, хотя и не уверен в производительности.

Но вернемся к Windows, все еще в PHP-FPM, я не вижу конкретного кода, который бы поддерживал высокую производительность всего веб-сервера.

А есть альтернатива винде? Что-то не так в моем исследовании?

Масштабируемость nginx в Windows ограничена, поэтому это не рекомендуемая платформа для производственного веб-сайта.

С веб-сайта nginx:

Версия nginx для Windows использует собственный Win32 API (а не слой эмуляции Cygwin). Только select() в настоящее время используется метод обработки соединений, поэтому ожидать высокой производительности и масштабируемости не следует.

Хотя можно запустить несколько рабочих, только один из них фактически выполняет какую-либо работу.

Рабочий может обрабатывать не более 1024 одновременных подключений.