Apache MPM winnt
| Описание: | Модуль многопроцессорной обработки, оптимизированный для Windows NT. |
|---|---|
| Статус: | MPM |
| Идентификатор модуля: | mpm_winnt_module |
| Файл исходного кода: | mpm_winnt.c |
Обзор
Этот модуль многопроцессорной обработки (MPM) является стандартным для операционных систем Windows NT. Он использует один управляющий процесс, который запускает один дочерний процесс, который в свою очередь создаёт потоки для обработки запросов.
Ёмкость настраивается с помощью директивы ThreadsPerChild, которая устанавливает максимальное количество одновременных подключений клиентов.
По умолчанию этот MPM использует расширенные API Windows для приема новых подключений клиентов. В некоторых конфигурациях сторонние продукты могут конфликтовать с этой реализацией, что приведёт к появлению следующих сообщений в журнале веб-сервера:
Child: Encountered too many AcceptEx faults accepting client connections. winnt_mpm: falling back to 'AcceptFilter none'.
MPM переключается на более безопасную реализацию, но некоторые запросы клиентов не обрабатываются корректно. Чтобы избежать этой ошибки, используйте AcceptFilter с фильтром accept none.
AcceptFilter http none AcceptFilter https none
В Apache httpd 2.0 и 2.2 для этой цели использовалось Win32DisableAcceptEx.
MPM WinNT отличается от MPM Unix, таких как worker и event, по нескольким параметрам:
- Когда дочерний процесс завершается из-за завершения работы, перезапуска или
MaxConnectionsPerChild, активные запросы в выходящем процессе имеютTimeOutсекунды для завершения, прежде чем обработка будет прервана. Другие типы перезапуска и завершения работы не реализованы. - Новые дочерние процессы считывают файлы конфигурации вместо наследования конфигурации от родительского процесса. Поведение будет таким же, как в Unix, если дочерний процесс создан при запуске или перезапуске, но если дочерний процесс создан из-за сбоя предыдущего или достижения
MaxConnectionsPerChild, все ожидающие изменения в конфигурации станут активными в дочернем процессе в этот момент, и родительский и дочерний процессы будут использовать различную конфигурацию. Если запланированные изменения конфигурации частично реализованы и текущая конфигурация не может быть обработана, дочерний процесс не может быть запущен, и сервер остановится. Из-за этого поведения файлы конфигурации не следует изменять до момента перезапуска сервера. - В настоящее время не реализованы крючки
monitorиfatal_exception. -
AcceptFilterреализован в MPM и имеет другой тип контроля над обработкой новых подключений. (Обратитесь к документацииAcceptFilterдля получения подробностей.)
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mpm_winnt.html