我想以原子方式更新实时网站。如果我们对页面、图像和 javascript 进行了多项更改,则所有更改都应该同时出现,不会出现停机、不一致或 404 错误。
如果我只是将更改的文件复制到网站目录中,那么至少有几个请求会看到不一致的站点。如果我将新站点复制到一个单独的目录,然后重命名旧目录以使其退出生产并重命名新目录以使其生效,那么我们将在短时间内得到 404。
我真的有两个问题:
如何以原子方式更新文件目录?
我该如何与 Git 协调呢?我们想使用 git pull(或可能 push)进行部署。git repo 中的站点路径与服务器上的路径不同,因此需要使用 git 命令或 OS 命令进行一些移动/重命名。