Apache: одновременные подключения к одному скрипту - PullRequest
2 голосов
/ 31 января 2012

Как Apache (я полагаю, самая популярная в настоящее время версия) обрабатывает соединение со скриптом, когда этот скрипт уже выполняется для другого соединения?

Я всегда думал - при получении запроса ксценарий, содержимое сценария копируется в память / компилируется / выполняется, и если во время этого процесса есть другой запрос к этому сценарию, происходит то же самое (при условии, что Apache не блокирует файл сценария, а просто предоставляет другую долю памяти / процессорадля другой компиляции / хранения-памяти / выполнения)

Или задействован механизм очередей / ожидания?

Предполагается, что этому дополнительному соединению предоставляется достаточно памяти, процессора и не проходит настройку максимального количества подключений.

1 Ответ

2 голосов
/ 31 января 2012

Быстрый (и простой) ответ - каждый запрос обрабатывается новым процессом. Apache прослушивает какой-то порт и для каждого запроса создает новый процесс, который обрабатывает этот запрос. Это означает, что нет общей памяти.

Также посмотрите на процессы с помощью команды "ps", вы увидите один процесс "http" для каждого запроса.

Посмотрите здесь для более сложной работы: http://httpd.apache.org/docs/2.0/mod/worker.html и посмотрите на Google тоже :) http://docstore.mik.ua/orelly/weblinux2/apache/ch01_02.htm

...