Назад | Перейти на главную страницу

перезапуск http-сервера apache без прерывания http-загрузки

если у меня большие загрузки файлов обслуживаются сервером apache, есть ли способ перезапустить / перезагрузить http-сервер (например, с новым обновлением httpd.conf) без прерывания текущей загрузки файлов? или, по крайней мере, предоставить клиентам возможность возобновить загрузку?

Обычная загрузка происходит в одном tcp-соединении, нет «универсального» способа перезапустить apache и поддерживать это единственное соединение.

НО если ты бежишь

apachectl -k graceful

или если вы отправите USR1 сигнал вашему главному процессу apache, затем он будет корректно перезагружен, это означает, что он завершит обслуживание текущих запросов, а затем перезагрузится.

На уровне протокола http можно запросить только часть файла.

Клиент может отправить HEAD запрос данного файла на сервер. Если сервер отвечает Accept-Ranges: bytes и Content-Length заголовок, клиент может перейти к отправке GET запрос с использованием Range: bytes=... заголовок для получения той части файла, которую он хочет. Сервер ответит частичным содержимым файла и присвоит своему ответу статус 206.

Известно, что Internet Explorer и Firefox делают это для обычных загрузок, когда вы просите браузер возобновить загрузку.