当 nginx 使用文件时,从 /var/www/html 复制文件

当 nginx 使用文件时,从 /var/www/html 复制文件

我有很多数据/var/www/html。超过 2GB。现在我可以在主机上托管网站(nginx使用 /var/www/html)或者我可以使用 docker。

对于 docker 用户,我将内容复制/var/www/html到另一个文件夹(src/)并将其挂载src/到我的容器内:

脚步:

stop nginx
copy files /var/www/html --> xxx/src/
start docker

复制需要几分钟,因此会有一些停机时间。执行以下操作是否是个坏主意:

copy files /var/www/html --> xxx/src/ (while nginx is running)
stop nginx
start docker

会不会有问题?

答案1

这完全取决于你的用例。让我试着描述一下可能的情况和相应的解决方案。

如果数据在复制到另一个位置期间没有快速变化或大小没有增加,则无需担心 Web 服务器的状态(运行/停止)。只需复制数据,然后切换 Web 服务器(例如从 Nginx 切换到 Apache/Docker)。

如果数据只是在大小上增长(而不是内容发生变化),那么您可以在切换 Web 服务器之前使用 rsync 几次。第一次,rsync 会复制整个数据(2GB 或其他)。第二次运行 rsync 时,它只会复制新数据(第一次运行 rsync 时添加的数据)。在这种情况下,您需要在第二次运行 rsync 时停止 Web 服务器。这样,您就可以最大限度地减少停机时间。复制新添加的数据所需的时间比复制整个数据要少得多。

如果数据发生变化(而不是增大),那么您绝对应该停止、复制,然后启动 Web 服务器。

如果数据发生变化并且大小也增加,那么您肯定应该停止、复制然后启动服务器。

无论您的情况如何,我强烈建议使用 rsync 将大部分现有数据复制到新位置以减少停机时间。

我希望这能有所帮助。

相关内容