Inilah cara saya mengelola ini di masa lalu dengan Apache (tanpa perubahan peringkat yang jelas):
1. Buat halaman pemeliharaan dengan buka / tutup yang ditentukan untuk jendela pemeliharaan - buat jendela perawatan sekitar dua kali lipat dari jumlah waktu yang Anda perkirakan untuk pemeliharaan agar Anda dapat memutar kembali jika perlu
2. Aturan penulisan ulang untuk mengarahkan lalu lintas ke halaman pemeliharaan:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4
RewriteCond %{REQUEST_URI} !maintenance\.html$
RewriteRule .* /maintenance.html [L,R=307]
(Di mana 1\.2\.3\.4
regexp untuk IP Anda)
3. Perawatan dan pengujian lengkap, komentar keluar arahan menulis ulang
The 307 sementara redirect adalah, untuk yang terbaik dari pengetahuan saya, header respon yang tepat untuk situasi pemeliharaan, saya belum pernah melihat masalah dengan pemeliharaan yang berlangsung 1-3 jam di situs cukup sibuk (yaitu pengguna 100-500 / jam).
Edit:
Per komentar John Mueller, Anda juga harus mengkonfigurasi server web Anda untuk membuat kesalahan 503 dengan jangka waktu Coba Lagi Setelah untuk menunjukkan bahwa laba-laba tidak boleh menembolokkan konten halaman pemeliharaan.
Untuk tujuan ini, Anda dapat mengikuti AskApache's 503 / Retry-After HowTo .