Bas*_*asj 3 apache apache2 virtualhost
上下文:假设我有这个/etc/apache2/sites-available/000-default.conf文件(Debian 9,Apache 2.4):
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html/site1
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
并且一些客户目前正在浏览该网站,甚至其中一些客户正忙于在该网站上下载 1 GB 的文件(假设他们正在下载www.example.com/bigfile.zip)。
现在我想添加一个新VirtualHost000-default.conf文件并将文件编辑为(并保存):
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html/site1
</VirtualHost>
<VirtualHost *:80>
ServerName example2.com
DocumentRoot /var/www/html/site2
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
现在如果我这样做
service apache2 restart
Run Code Online (Sandbox Code Playgroud)
它将成功启用新网站example2.com,但也会停止来自 example.com 的客户端的所有正在进行的请求,并且它将中断例如正在进行的下载。
问题:有没有办法VirtualHost为其他VirtualHosts添加一个新的而不中断正在进行的请求(长时间下载等)?
笔记:
我已经阅读了如何在不重新启动 apache 的情况下为站点重新加载 apache 配置,但问题和答案并不准确说明“不重新启动”Apache 的后果是什么。同样关于我可以“重载”没有问题的Apache2配置文件?,我不确定在从客户端持续 20 分钟下载的情况下会发生什么。是等还是不等?这里的这个问题特别关注添加一个新的 VirtualHost,同时不破坏其他人的请求。
我也准备了许多类似的问题,但这个问题解决了一个精确的特定要求:安装一个新的,VirtualHost同时不中断正在进行的请求,例如长时间下载。
重启==停止,然后开始。
而是使用apachectl graceful. Graceful 让现有的连接完成,然后在每个子进程被释放时一个一个地重新启动它们。新连接将获得新配置。
见https://httpd.apache.org/docs/2.4/stopping.html#graceful
| 归档时间: |
|
| 查看次数: |
6305 次 |
| 最近记录: |