Сервер, в зависимости от его конфигурации, обычно может обслуживать сотни запросов одновременно - при использовании Apache MaxClients
вариант конфигурации гласит:
MaxClients
Директива устанавливает ограничение на количество одновременных запросов , которые будут обслуживаться.
Любые попытки подключения сверх
MaxClients
лимита обычно ставятся в очередь до числа, зависящего от директивы ListenBacklog.
Как только дочерний процесс будет освобожден в конце другого запроса, соединение будет обслуживаться.
Тот факт, что два клиента запрашивают одну и ту же страницу, не является проблемой.
Так :
Будут ли запросы стоять в очереди?
Нет; кроме случаев, когда:
- где-то есть некоторая блокировка - что может произойти, например, если два запроса поступают от одного и того же клиента, и вы используете файловые сеансы в PHP : пока выполняется сценарий, сеанс "заблокирован", что означает, что серверу / клиенту придется дождаться завершения первого запроса (и разблокировки файла ), чтобы иметь возможность использовать файл для открытия сеанса для второго пользователя.
- запросы поступают от одного и того же клиента И одного и того же браузера; в этом случае большинство браузеров ставят запросы в очередь, даже если на стороне сервера нет ничего такого, что вызывает такое поведение.
- существует больше, чем
MaxClients
сейчас активных процессов - см. цитату из руководства Apache непосредственно перед этим.
Будут ли они проигнорированы?
Нет: это будет означать, что только один пользователь может использовать веб-сайт одновременно; это было бы не очень хорошо, правда?
Если бы это было так, я не мог бы опубликовать этот ответ, если бы вы нажимали F5 в тот же момент, чтобы узнать, ответил ли кто-нибудь!
(Ну, SO не в PHP, но принципы те же)
Любая другая возможность?
Да ^^
отредактируйте после того, как вы отредактировали OP и комментарий:
Будет ли каждый запрос иметь собственный экземпляр скрипта?
Не существует такой вещи, как « экземпляр сценария »: проще говоря, то, что происходит, когда делается запрос к сценарию:
- веб-сервер создает другой процесс для обработки запроса (часто из соображений производительности эти вилки создаются заранее, но это ничего не меняет)
- процесс читает PHP-скрипт с диска
- несколько процессов могут делать это одновременно : нет блокировки при чтении файла
- файл загружается в память; в отдельном блоке памяти для каждого процесса
- файл PHP в памяти " компилируется " в коды операций - все еще в памяти
- эти коды операций выполняются - все еще из блока памяти, который принадлежит процессу, отвечающему на ваш запрос
На самом деле у вас может быть два пользователя, отправляющих запрос к одному и тому же сценарию PHP (или к отдельным сценариям PHP, которые все включают один и тот же файл PHP) ; это определенно не проблема, или ни один из веб-сайтов, над которыми я когда-либо работал, не работал бы!