Domain Yeni Sunucuya Nasıl Yönlendirilir? Sunucu Taşıma Rehberi
Bir domaini yeni sunucuya yönlendirmek için genellikle domainin DNS kayıtlarındaki A kaydı yeni sunucunun IP adresiyle değiştirilir. Ancak aktif bir web sitesini taşırken yalnızca DNS kaydını değiştirmek yeterli değildir. Site dosyaları, veritabanı, Nginx veya Apache yapılandırması, SSL sertifikası ve varsa e-posta hizmetleri de dikkate alınmalıdır.
Kesintiyi azaltmanın en güvenli yolu önce yeni sunucuyu tamamen hazırlamak, ardından DNS'i değiştirmektir.
1. Yeni sunucuyu hazırlayın
Domaini yönlendirmeden önce yeni VPS veya sunucunun çalışır durumda olması gerekir.
Örneğin projenize göre:
- Nginx veya Apache
- Node.js
- PM2
- PostgreSQL veya MySQL
- PHP
- Gerekli uygulama paketleri
kurulmuş olmalıdır.
DNS'i önce değiştirip sunucuyu daha sonra hazırlamak ziyaretçilerin çalışmayan bir siteyle karşılaşmasına neden olabilir.
2. Site dosyalarını yeni sunucuya taşıyın
Mevcut web sitesi dosyalarını yeni sunucuya aktarın.
Bunlar projeye göre:
- Uygulama kodları
- Statik dosyalar
- Kullanıcı yüklemeleri
- Görseller
- Yapılandırma dosyaları
- Gerekli environment ayarları
olabilir.
.env gibi hassas dosyaları güvenli yöntemlerle taşıyın ve herkese açık web dizinlerinde erişilebilir bırakmayın.3. Veritabanını taşıyın
Site PostgreSQL veya MySQL gibi bir veritabanı kullanıyorsa veriler de yeni sunucuya aktarılmalıdır.
PostgreSQL için yaygın yöntemlerden biri
pg_dump ile yedek alıp yeni sunucuda uygun araçla geri yüklemektir.Veritabanı taşımasından sonra:
- Kullanıcı sayısı
- İçerik sayısı
- Son kayıtlar
- Tablolar
- Uygulama bağlantısı
kontrol edilmelidir.
Yedeğin oluşturulmuş olması tek başına yeterli değildir; yeni sunucuda gerçekten kullanılabildiği doğrulanmalıdır.
4. Uygulamayı yeni sunucuda çalıştırın
Node.js uygulaması kullanılıyorsa örneğin:
pm2 statusile uygulamanın durumunu kontrol edin.
Gerekirse:
pm2 logs uygulama-adiile hata kayıtlarını inceleyin.
Backend'in kullandığı portu doğrudan test etmek için örneğin:
curl -i http://127.0.0.1:3000kullanılabilir.
Uygulama burada düzgün çalışmıyorsa domaini yönlendirmek sorunu çözmez.
5. Nginx yapılandırmasını hazırlayın
Yeni sunucuda domain için uygun server bloğu oluşturulmalıdır.
Örneğin yapılandırmada:
server_name example.com www.example.com;bulunabilir.
Reverse proxy kullanılıyorsa Node.js uygulamasının doğru portuna yönlendirme yapılmalıdır.
Yapılandırmayı test etmek için:
sudo nginx -tkullanın.
Test başarılıysa:
sudo systemctl reload nginxile yapılandırma yeniden yüklenebilir.
6. Yeni sunucuyu DNS değiştirmeden test edin
Mümkünse DNS'i değiştirmeden önce yeni sunucunun çalıştığını doğrulayın.
Teknik kullanıcılar kendi bilgisayarındaki
hosts dosyasını geçici olarak kullanarak domaini yalnızca kendi cihazlarında yeni IP'ye çözümleyebilir.Böylece gerçek DNS kaydı henüz eski sunucuyu gösterirken:
- Ana sayfa
- Giriş sistemi
- Kayıt
- API
- Görseller
- CSS ve JavaScript
- Veritabanı bağlantısı
- Formlar
yeni sunucu üzerinde test edilebilir.
Test bittikten sonra geçici hosts kaydı kaldırılmalıdır.
7. DNS'in nereden yönetildiğini belirleyin
Domaini satın aldığınız firma ile DNS'i yöneten firma aynı olmak zorunda değildir.
Aktif nameserver kayıtlarını kontrol edin.
Örneğin:
dig NS example.comile nameserver bilgileri görüntülenebilir.
Domain başka bir DNS sağlayıcısının nameserver'larını kullanıyorsa A kaydını domain kayıt firmasından değil aktif DNS sağlayıcısının panelinden değiştirmeniz gerekebilir.
8. Mevcut DNS kayıtlarının yedeğini alın
DNS üzerinde değişiklik yapmadan önce mevcut kayıtların ekran görüntüsünü veya başka bir kopyasını almak faydalıdır.
Özellikle:
- A
- AAAA
- CNAME
- MX
- TXT
kayıtlarını kaydedin.
Yanlış bir değişiklik yapılırsa eski yapılandırmaya dönmek daha kolay olur.
9. A kaydını yeni sunucu IP'sine değiştirin
Örneğin eski sunucu:
198.51.100.20yeni sunucu:
203.0.113.10olsun.
Kök domain için mevcut A kaydı:
@ → 198.51.100.20yerine:
@ → 203.0.113.10olarak değiştirilir.
Bundan sonra DNS resolver'ları zaman içerisinde yeni IP adresini kullanmaya başlayacaktır.
10. www kaydını kontrol edin
Siteniz:
www.example.comüzerinden de açılıyorsa
www kaydını unutmayın.Örneğin:
www → example.comşeklinde CNAME kullanılabilir.
Ya da altyapınıza göre
www için ayrı A kaydı bulunabilir.Ana domain yeni sunucuya giderken
www eski sunucuya gidiyorsa kullanıcılar farklı sunuculara ulaşabilir.11. AAAA kaydını unutmayın
Domain üzerinde IPv6 için AAAA kaydı bulunuyorsa yalnızca A kaydını değiştirmek yeterli olmayabilir.
Eski sunucuya ait çalışan bir AAAA kaydı bırakılırsa IPv6 kullanan bazı ziyaretçiler eski sunucuya ulaşabilir.
IPv6 kullanmıyorsanız mevcut AAAA kaydının ne işe yaradığını anlamadan rastgele bırakmak veya silmek yerine yapılandırmayı kontrol edin.
12. MX ve e-posta kayıtlarını gereksiz yere değiştirmeyin
Web sitesini başka sunucuya taşımanız e-posta hizmetini de taşımanız gerektiği anlamına gelmez.
Domain üzerinde:
- MX
- SPF
- DKIM
- DMARC
gibi e-posta kayıtları bulunabilir.
E-posta hizmeti aynı yerde kalacaksa bu kayıtları gereksiz yere değiştirmeyin.
Bütün DNS kayıtlarını silip yalnızca yeni A kaydını oluşturmak çalışan e-posta sistemini bozabilir.
13. DNS değişikliğinin yayılmasını bekleyin
A kaydı değiştirildikten sonra herkes anında yeni sunucuya geçmeyebilir.
DNS cache ve TTL nedeniyle bazı kullanıcılar bir süre:
Eski sunucuya
bazıları ise:
Yeni sunucuya
ulaşabilir.
Bu nedenle eski sunucuyu DNS değişikliğinin hemen ardından kapatmak doğru değildir.
14. Domainin hangi IP'ye gittiğini kontrol edin
Örneğin:
nslookup example.comveya:
dig example.comkullanabilirsiniz.
A kaydı için:
dig A example.comkullanılabilir.
www adresini de ayrıca kontrol edin:dig A www.example.comveya kullanılan kayıt yapısına göre CNAME sorgusu yapılabilir.
15. Farklı DNS resolver'larında sonuç değişebilir
Kendi bilgisayarınız yeni IP'yi gösterirken başka bir ağ eski IP'yi görebilir.
Bu normal bir geçiş davranışı olabilir.
Yerel DNS cache, internet sağlayıcısının resolver'ı ve diğer DNS cache sistemleri kayıtları farklı zamanlarda yenileyebilir.
16. SSL sertifikasını kontrol edin
Yeni sunucuya geçildikten sonra:
https://example.comadresinin geçerli SSL sertifikasıyla açılması gerekir.
Sertifika:
- Doğru domaine ait olmalı
- Süresi geçmemiş olmalı
- Web sunucusunda doğru yapılandırılmalı
ve gerekiyorsa
www sürümünü de kapsamalıdır.DNS değişikliği tek başına SSL sertifikasını eski sunucudan yeni sunucuya taşımaz.
17. Firewall ayarlarını kontrol edin
Yeni sunucuda web trafiği için gerekli portların erişilebilir olması gerekir.
Genellikle:
80 → HTTP443 → HTTPSkullanılır.
Sunucunun firewall'u veya hosting sağlayıcısının harici firewall sistemi bu bağlantıları engelliyorsa DNS doğru olsa bile site açılmayabilir.
18. Eski sunucuyu hemen kapatmayın
Sunucu taşıma sırasında en sık yapılan hatalardan biri budur.
DNS değiştikten hemen sonra eski sunucuyu kapatırsanız cache nedeniyle eski IP'yi kullanan ziyaretçiler siteye ulaşamayabilir.
Eski sunucuyu bir geçiş süresi boyunca çalışır tutmak kesinti riskini azaltır.
Dinamik sitelerde veri senkronizasyonuna dikkat edin
Forum, e-ticaret veya üyelik sistemi gibi sürekli veri yazılan sitelerde önemli bir problem oluşabilir.
DNS geçişi sırasında:
- Bazı kullanıcılar eski sunucuya
- Bazıları yeni sunucuya
bağlanabilir.
Bu sırada iki farklı veritabanına yeni kayıtlar yazılırsa veri ayrışması oluşabilir.
Bu nedenle yoğun ve sürekli veri yazılan sistemlerde taşıma planı daha dikkatli yapılmalıdır.
Gerekirse kısa bir bakım penceresi kullanılarak son veritabanı senkronizasyonu yapılabilir.
Dosya yüklemeleri de unutulmamalı
Kullanıcıların:
- Profil fotoğrafı
- Forum görseli
- Belge
- Ekran görüntüsü
yükleyebildiği bir sistemde yalnızca veritabanının son kopyasını almak yeterli olmayabilir.
DNS geçişi sırasında eski sunucuya yüklenen yeni dosyaların da yeni sunucuya aktarılması gerekebilir.
Cloudflare veya başka bir proxy kullanıyorsanız
Proxy/CDN hizmeti kullanıldığında kullanıcılar doğrudan origin sunucu IP adresine bağlanmayabilir.
Bu durumda yeni sunucuya geçerken ilgili DNS kaydının origin IP'sini değiştirmek gerekebilir.
Ayrıca:
- SSL modu
- Cache
- Firewall
- Origin erişimi
gibi ayarlar da kontrol edilmelidir.
Eski içerik görünüyorsa sorun her zaman DNS olmayabilir; CDN cache'i de etkili olabilir.
DNS değişti ama eski site görünüyor
Bunun birkaç nedeni olabilir:
- DNS cache
- Tarayıcı cache
- CDN cache
- Yanlış A kaydı
- Eski AAAA kaydı
-
www kaydının eski sunucuyu göstermesi- Yanlış nameserver üzerinde değişiklik yapılması
Önce domainin gerçekten hangi IP adresine çözüldüğünü kontrol edin.
Sunucu taşıma için güvenli sıralama
Pratik olarak şu sıra kullanılabilir:
1. Yeni sunucuyu hazırlayın.
2. Site dosyalarını taşıyın.
3. Veritabanını taşıyın.
4. Uygulamayı çalıştırın.
5. Nginx veya Apache yapılandırmasını hazırlayın.
6. Yeni sunucuyu DNS değiştirmeden test edin.
7. Mevcut DNS kayıtlarının yedeğini alın.
8. Gerekirse son veri senkronizasyonunu yapın.
9. A ve gerekiyorsa AAAA kayıtlarını güncelleyin.
10.
www kaydını kontrol edin.11. DNS yayılımını takip edin.
12. SSL sertifikasını doğrulayın.
13. Site fonksiyonlarını tekrar test edin.
14. Yeni sunucunun loglarını takip edin.
15. Geçiş tamamlanana kadar eski sunucuyu erişilebilir tutun.
16. Her şey doğrulandıktan sonra eski sunucuyu devreden çıkarın.
Sık yapılan hatalar
Domain yeni sunucuya taşınırken şu hatalardan kaçının:
- Yeni sunucuyu hazırlamadan DNS'i değiştirmek
- Sadece dosyaları taşıyıp veritabanını unutmak
- Kullanıcı yüklemelerini taşımamak
- Yanlış DNS panelini düzenlemek
-
www kaydını unutmak- Eski AAAA kaydını kontrol etmemek
- MX ve TXT kayıtlarını gereksiz yere silmek
- SSL sertifikasını kontrol etmemek
- Eski sunucuyu hemen kapatmak
- Dinamik sitelerde son veri senkronizasyonunu planlamamak
- DNS cache ile tarayıcı veya CDN cache'ini birbirine karıştırmak
Özetle, domaini yeni sunucuya yönlendirmek teknik olarak A veya ilgili DNS kayıtlarını değiştirmek kadar basit olabilir; ancak aktif bir web sitesinin güvenli şekilde taşınması bundan daha kapsamlıdır.
En sağlıklı yöntem yeni sunucuyu tamamen hazırlamak → siteyi test etmek → son verileri senkronize etmek → DNS'i değiştirmek → eski ve yeni sunucuyu geçiş boyunca takip etmek → geçiş tamamlandıktan sonra eski sunucuyu kapatmak şeklindedir.
