Alan Adını Sanal Sunucuya Bağlamak Neden Karmaşık Görünüyor?
Bir sanal sunucu (VPS) satın aldığınızda, aslında genel ve özel bir IP'ye sahip olursunuz. Ancak kullanıcılarınız IP ile değil, alan adı ile giriş yapar. Alan adını sunucuya bağlamak, bu ikisi arasında bir köprü kurmak anlamına gelir: alan adı sunucunuzun IP'sini göstermeli, web sunucusu bu alan adı için istekleri kabul etmeli ve sonunda güvenli HTTPS bağlantısı kurulmalıdır. Bu makalede, tam olarak bu yolu adım adım ilerliyoruz; gereksiz ayrıntılar olmadan ve gerçek örneklerle.
Birçok kullanıcı, alan adını sunucuya bağlamanın yalnızca DNS panelinde basit bir ayar olduğunu düşünür. Ancak web sunucunuz (Apache veya Nginx) alan adınız için yapılandırılmamışsa, Domain is not configured hatası veya sunucunun varsayılan sayfasıyla karşılaşırsınız. Devamında, üç katmanı da ele alıyoruz: DNS, web sunucusu ve SSL.
Adım 1: Alan Adını Sunucuya Bağlamak için DNS'te A Kaydı Ayarlama
A kaydı (Address Record), bir alan adını bir IPv4 adresine eşleyen en basit ve en önemli DNS kaydı türüdür. Alan adını sunucuya bağlamak için bu kaydı, alan adınızın DNS hizmetinde (genellikle kayıt şirketi veya alan adı hosting sağlayıcınızda) oluşturmanız gerekir.
DNS Yönetim Paneline Erişim
Alan adınızı nereden satın aldığınıza bağlı olarak erişim yolu farklılık gösterir. Genellikle kullanıcı panelinde DNS Management, Zone Editor veya Manage DNS adında bir bölüm bulunur. Alan adınız başka bir şirketin ad sunucularında (Nameservers) ise, o paneli kullanmanız gerekir.
Ana Alan Adı ve www Alt Alan Adı için A Kaydı Oluşturma
İki ayrı A kaydı oluşturun:
- Ana alan adı (örneğin
example.com): Name veya Host alanına@yazın veya boş bırakın (panelye bağlı olarak). Value veya Points to alanına sunucunuzun IP'sini girin. - www alt alan adı (örneğin
www.example.com): Name alanınawwwyazın ve Value alanına aynı IP'yi girin.
Zone dosyasındaki gerçek bir A kaydı örneği:
example.com. 3600 IN A 185.10.20.30
www.example.com. 3600 IN A 185.10.20.30
3600 sayısı, saniye cinsinden TTL (Time To Live) değeridir, yani bir saat. Test yapıyorsanız, değişikliklerin daha hızlı uygulanması için TTL'yi 300 (5 dakika) değerine düşürebilirsiniz.
DNS Yayılımını Kontrol Etme
Kayıtları kaydettikten sonra, dünya genelindeki DNS sunucularında yayılma birkaç dakikadan 24 saate kadar sürebilir. Hızlı kontrol için terminalde aşağıdaki komutu kullanın:
dig example.com A +short
dig www.example.com A +short
Çıktı, sunucunuzun IP'sini göstermelidir. Ayrıca dnschecker.org gibi çevrimiçi araçları da kullanabilirsiniz.
@ için A kaydı ayarlar ve www'yi unutur. Sonuç: Kullanıcı www ile girdiğinde DNS hatası alır. Her zaman her iki kaydı da oluşturun veya en azından www için ana alan adına bir CNAME kaydı oluşturun.Adım 2: Alan Adını Kabul Etmek için Web Sunucusunu Yapılandırma
Artık DNS sunucunuzun IP'sini gösterdiğine göre, web sunucusunu (Apache veya Nginx) alan adınızla ilgili istekleri işleyecek şekilde ayarlamanız gerekir. Aksi takdirde, tarayıcı varsayılan sayfayı veya 404 hatasını gösterir.
Nginx Yapılandırması (Pratik Örnek)
Nginx kullandığınızı ve alan adınızın example.com olduğunu varsayalım. Önce /etc/nginx/sites-available/ dizininde yeni bir yapılandırma dosyası oluşturun:
sudo nano /etc/nginx/sites-available/example.com
Aşağıdaki içeriği girin:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
Ardından sites-enabled klasörüne sembolik bir bağlantı oluşturun ve yapılandırmayı test edin:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
PHP-FPM kullanıyorsanız, location ~ \.php$ bloğunu da ekleyin.
Apache Yapılandırması (Pratik Örnek)
Apache için /etc/apache2/sites-available/ dizininde bir VirtualHost oluşturun:
sudo nano /etc/apache2/sites-available/example.com.conf
Önerilen içerik:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Ardından siteyi etkinleştirin ve servisi yeniden başlatın:
sudo a2ensite example.com.conf
sudo systemctl restart apache2
Alan Adının Sunucuya Bağlantısını Test Etme
Yapılandırmadan sonra tarayıcıda http://example.com adresini açın. /var/www/example.com klasörünün içeriğini görüyorsanız, alan adının sunucuya bağlantısı başarıyla gerçekleşmiştir. 403 veya 404 hatası görürseniz, root klasöründe index.html dosyasının bulunduğundan ve izinlerin doğru olduğundan emin olun.
sudo nginx -T | grep server_name komutuyla (Nginx için) alan adınızın server_name listesinde olup olmadığını kontrol edin.Adım 3: Güvenli Bağlantı için SSL Sertifikası Çıkarma
Alan adının sunucuya bağlantısı kurulduktan sonra sıra HTTPS'ye gelir. Günümüzde SSL sertifikası yalnızca güvenlik için değil, aynı zamanda SEO ve kullanıcı güveni için de gereklidir. En kolay yol, Let's Encrypt ve Certbot aracını kullanmaktır.
Certbot Kurulumu ve Sertifika Çıkarma
Önce Certbot'u kurun (Ubuntu/Debian için örnek):
sudo apt update
sudo apt install certbot python3-certbot-nginx
Ardından Nginx için şu komutu çalıştırın:
sudo certbot --nginx -d example.com -d www.example.com
Apache için:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
Certbot otomatik olarak sertifikayı çıkarır, web sunucusu yapılandırmasını HTTPS için günceller ve HTTP'den HTTPS'ye yönlendirmeyi etkinleştirir. Çalıştırdıktan sonra https://example.com adresini test edin.
SSL Sonrası DNS Kayıtlarını Değiştirme
Önemli bir not: Doğrudan A kayıtları kullanıyorsanız, SSL'den sonra herhangi bir değişiklik gerekmez. Ancak CDN veya Ters Vekil Sunucu (Reverse Proxy) kullanıyorsanız, sertifikanın ana alan adı için çıkarıldığından ve CDN'de SSL ayarlarının etkin olduğundan emin olmalısınız.
Sertifikanın Otomatik Yenilenmesi
Let's Encrypt sertifikaları 90 gün geçerlidir. Otomatik yenileme için varsayılan olarak bir systemd zamanlayıcı (timer) kurulur. Aşağıdaki komutla kontrol edebilirsiniz:
sudo systemctl list-timers | grep certbot
Zamanlayıcı etkin değilse, bir cron işi ekleyin:
0 3 * * * /usr/bin/certbot renew --quiet
SSL certificate mismatch hatası veya tarayıcıda güvenlik uyarısı. IP veya sunucu değişikliğinden sonra her zaman sertifikayı yeniden çıkarın.Özet ve Son Kontrol Listesi
Alan adını sanal sunucuya bağlamak, her biri doğru şekilde yapılması gereken üç ayrı katmandan oluşur:
- DNS: Ana alan adı ve www için A kaydı sunucunun IP'sini göstermelidir.
- Web sunucusu: Alan adınız için VirtualHost veya Server Block tanımlanmış olmalıdır.
- SSL: Geçerli bir sertifika çıkarılmalı ve HTTPS yönlendirmesi etkin olmalıdır.
Üç adımı da sırayla uygularsanız, alan adınızın sunucuya bağlantısı kalıcı ve güvenli olacaktır. Son olarak, sanal sunucunuz İran'da barındırılıyorsa ve teknik desteğe ihtiyacınız varsa, ServerNet ilk kurulumda ve DNS ile web sunucusu sorunlarının çözümünde size yardımcı olabilir; ancak bu makaledeki tüm adımları bağımsız olarak da gerçekleştirebilirsiniz.
Bu kontrol listesini kaydetmenizi ve DNS veya sunucuda herhangi bir değişiklik yaptıktan sonra tekrar gözden geçirmenizi öneririm. Alan adını sunucuya bağlamak ilk bakışta birkaç adımlı gibi görünse de, bu rehberle 30 dakikadan kısa sürede tamamlanabilir.