Скажем, у меня есть сайт PHP, на котором размещены изображения большего размера. Каждая страница очень проста и практически не требует времени для обработки в PHP, но может содержать большое изображение размером в пару МБ.
Вопрос в том, если у меня Apache настроен для обработки 100 подключений, а сама страница создает пару мс, блокирует ли он соединение для передачи изображений или это обрабатывается в каком-то другом пуле подключений?
Поскольку в первом случае загрузка изображения может занять несколько секунд, поэтому я смогу обслуживать только 100 клиентов за раз.
Каждое соединение с сервером, будь то PHP или статический файл, происходит из одного и того же пула из 100 соединений. Как только PHP обслуживает HTML, соединение можно использовать для чего-то еще. Если это постоянное соединение, оно, вероятно, будет повторно использовано для загрузки изображения.
Имейте в виду, что современные браузеры будут создавать от 2 до 6 постоянных подключений, поэтому одновременно будет не более 100 клиентов.
Пример сценария, предполагающий KeepAlive
включен: одно соединение обрабатывает сценарий PHP, затем это же соединение начнет загрузку изображения, и браузер откроется или использует существующие соединения для загрузки других изображений.
Это зависит от настройки поддержки активности. Если вы установите его в положение «включено», соединения будут использоваться повторно. Если вы установите для него значение «выключено», новые подключения будут выполняться для каждого элемента страницы (html / php, изображения, файлы javascript, css и т. Д.). Если оставить его включенным, это повысит удобство работы ваших пользователей за счет загрузки ЦП сервера. Отключение этого параметра означает более медленную работу в Интернете, но немного снижает нагрузку на сервер. Также вы можете настроить параметр keepalivetimeout. Установите значение 5 или меньше.