Nginx

在 nginx 使用文件時從 /var/www/html 複製文件

  • August 24, 2017

我有很多數據/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

會不會有問題?

這完全取決於您的案例。讓我嘗試描述可能的場景和相應的解決方案。

如果數據在復製到另一個位置期間沒有快速變化或大小沒有增長,則無需擔心 Web 伺服器的狀態(執行/停止)。只需複制數據,然後切換 Web 伺服器(例如,從 Nginx 切換到 Apache / Docker)。

如果數據只是在大小上增長(而不是內容的變化),那麼您可以在切換 Web 伺服器之前使用 rsync 幾次。第一次,rsync 將複製整個數據(2GB 或其他)。當 rsync 第二次執行時,它只會複製新數據(這是在第一次執行 rsync 時添加的)。在這種情況下,您希望在第二次執行 rsync 時停止 Web 伺服器。通過這種方式,您可以最大限度地減少停機時間。與複製整個數據相比,複製新添加的數據所需的時間要少得多。

如果數據發生變化(而不是變大),那麼您絕對應該停止、複製然後啟動 Web 伺服器。

如果數據發生變化並且大小也在增長,那麼您當然也應該停止、複製然後啟動伺服器。

無論您的情況是什麼,我強烈建議使用 rsync 通過將大部分現有數據複製到新位置來減少停機時間。

我希望這會有所幫助。

引用自:https://serverfault.com/questions/870139