重新启动 apache http 服务器而不中断 http 下载

重新启动 apache http 服务器而不中断 http 下载

如果我使用 apache 服务器下载大型文件,有没有办法重新启动/重新加载 http 服务器(例如,使用新的 httpd.conf 更新)而不中断正在进行的文件下载?或者至少为客户端提供一种恢复下载的方法?

答案1

正常下载发生在单个 tcp 连接中,没有“通用”方法来重新启动 apache 并维持该单个连接。

但如果你跑

apachectl -k graceful

或者如果你USR1向你的 apache 主进程发送一个信号,那么它将正常重新加载,这意味着它将完成当前正在进行的请求的服务,然后重新加载。

在 http 协议级别,可以只请求文件的一部分。

客户端可以HEAD向服务器发送给定文件的请求。如果服务器响应Accept-Ranges: bytes并带有Content-Length标头,则客户端可以继续发送带有标头的GET请求,Range: bytes=...以接收其想要的文件的任何部分。服务器将响应文件的部分内容,并在其响应中放置 206 状态。

众所周知,当您要求浏览器恢复下载时,Internet Explorer 和 Firefox 会对正常下载执行此操作。

相关内容