сервер, в зависимости от конфигурации, в общем случае может служить сотни запросов в то же время - при использовании Apache, параметр конфигурации MaxClients
является одна поговорка:
MaxClients
устанавливает предел на количество одновременных запросов, которые будут обслуживаться.
Любые попытки подключения к MaxClients
предел обычно будет в очереди, до номера на основе ListenBacklog директива.
После того, как ребенок процесс освобождается в конце , запрос будет отправлен по запросу .
Тот факт, что две клиенты запрашивают та же страница не является проблемой.
Итак:
будут поставлены в очередь запросы?
Нет; за исключением случаев:
- есть некоторые замок где-то - что может произойти, например, если два запросы поступают от одного клиента, и вы используете сессии на основе файлов в PHP: в то время как сценарий выполняется, сеанс «заблокирован», что означает, что сервер/клиент должен будет дождаться завершения первого запроса (и файл разблокирован), чтобы иметь возможность использовать этот файл для открытия сеанса для второго пользователь.
- запросы поступают от одного и того же клиента и того же браузера; большинство браузеров будут останавливать запросы в этом случае, даже если на этом сервере ничего не происходит.
- В настоящее время активных процессов более
MaxClients
- см. Цитату из руководства Apache как раз перед этим.
Будут ли они быть проигнорированы?
No: это будет означать, что только один пользователь может использовать веб-сайт одновременно; это было бы неплохо, не так ли?
Если бы это было так, я не смог бы опубликовать этот ответ, если вы, когда нажимаете F5 в тот же момент, чтобы посмотреть, кто-то ответил!
(Ну, SO не в PHP, но принципы остаются теми же)
Любая другая возможность?
Да ^^
редактировать после редактировал OP и комментарий:
Будет каждый запрос имеет свой собственный экземпляр сценария ?
Там нет такого понятия, как «экземпляра сценария»: просто положить, что происходит, когда запрос на скрипт выполнен является:
- Вебсервер вилки другой процесс, чтобы обрабатывать запрос (часто по соображениям производительности эти вилки сделаны заранее, но это ничего не меняет)
- процесс читает скрипт PHP с диска
- несколько процессов могут сделать это в то же самое время: нет блокировки на чтение файла
- файл загружается в память; в отдельном блоке памяти для каждого процесса
- файл PHP в памяти «скомпилирован» в опкоды - до сих пор в памяти
- этих опкоды выполняются - до сих пор из блока памяти, который принадлежит процесс ответа на ваш запрос
Действительно, вы можете иметь два пользователя, отправив запрос на тот же PHP скрипт (или в различных PHP скриптов, которые все содержат тот же PHP-файл); это определенно не проблема, или ни один из сайтов, на которых я когда-либо работал, не сработает!
Также проверьте этот ответ: http://konrness.com/php5/how-to-prevent-blocking-php-requests/ – trante