Perusahaan saya hanya melakukan ini dengan beberapa situs Web besar. Prosedur dasar yang kami ikuti adalah:
- Turunkan TTL domain sebanyak mungkin. Lakukan ini sebelumnya paling tidak sebanyak waktu TTL saat ini.
- Atur situs Web di server baru persis seperti yang Anda inginkan dengan "produk akhir"
- Tambahkan nama alias ke situs di server baru, seperti www2.domain.com atau www-new.domain.com. Dengan Apache, Anda akan menggunakan direktif ServerAlias . Jika situs memiliki kode dinamis sama sekali (PHP, mod_perl, RubyOnRails, dll.), Pastikan bahwa situs akan berperilaku dan merespons dengan benar dengan nama baru ini.
- Pada saat cutover, atur pengalihan pada server lama yang menunjuk ke server baru
- Ubah DNS untuk www untuk membuka IP baru.
Untuk Apache, Anda mungkin harus menggunakan mod_rewrite untuk pengalihan sehingga Anda dapat mempertahankan URI yang diminta oleh klien. Implementasi sederhana adalah:
# old server
<VirtualHost 1.1.1.1:80>
ServerName www.domain.com
RewriteEngine on
RewriteRule ^(.*)$ http://www-new.domain.com$1 [L]
</VirtualHost>
# new server
<VirtualHost 1.1.1.2:80>
ServerName www.domain.com
ServerAlias www-new.domain.com
</VirtualHost>
Ini akan melakukan pengalihan sementara 302 untuk www.domain.com/anything ke www-new.domain.com/anything. Anda ingin ini bersifat sementara karena Anda mungkin ingin mesin pencari hanya mengindeks www.domain.com, bukan www-new.domain.com.
Setelah perubahan DNS untuk www.domain.com disebarluaskan untuk kepuasan Anda, Anda dapat membuang www-baru sama sekali, atau dengan mudah meringankan siapa pun yang menggunakannya kembali ke www dengan pengalihan lain. Ini hampir proses yang sama seperti di atas; mengatur server lama untuk menangani www-baru, mengubah DNS untuk www-baru untuk menunjuk ke server lama, dan mengatur pengalihan pada server lama mengirimkan lalu lintas www-baru ke www:
# old server
<VirtualHost 1.1.1.1:80>
ServerName www-new.domain.com
RewriteEngine on
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L]
</VirtualHost>
# new server
<VirtualHost 1.1.1.2:80>
ServerName www.domain.com
# ServerAlias removed, no longer needed
</VirtualHost>
Kali ini Anda ingin melakukan pengalihan 301 permanen, sekali lagi untuk memberi petunjuk pada crawler mesin pencari bahwa www.domain.com adalah situs yang Anda ingin mereka indeks.