Spec-Zone.ru › Apache HTTP Server

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API