Nginx
在 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
會不會有問題?
這完全取決於您的案例。讓我嘗試描述可能的場景和相應的解決方案。
如果數據在復製到另一個位置期間沒有快速變化或大小沒有增長,則無需擔心 Web 伺服器的狀態(執行/停止)。只需複制數據,然後切換 Web 伺服器(例如,從 Nginx 切換到 Apache / Docker)。
如果數據只是在大小上增長(而不是內容的變化),那麼您可以在切換 Web 伺服器之前使用 rsync 幾次。第一次,rsync 將複製整個數據(2GB 或其他)。當 rsync 第二次執行時,它只會複製新數據(這是在第一次執行 rsync 時添加的)。在這種情況下,您希望在第二次執行 rsync 時停止 Web 伺服器。通過這種方式,您可以最大限度地減少停機時間。與複製整個數據相比,複製新添加的數據所需的時間要少得多。
如果數據發生變化(而不是變大),那麼您絕對應該停止、複製然後啟動 Web 伺服器。
如果數據發生變化並且大小也在增長,那麼您當然也應該停止、複製然後啟動伺服器。
無論您的情況是什麼,我強烈建議使用 rsync 通過將大部分現有數據複製到新位置來減少停機時間。
我希望這會有所幫助。