Bir alan adını VPS’ye bağlamak üç ayrı parçayı bir araya getirir: DNS doğru sunucuyu gösterir, Nginx isteği doğru siteye yönlendirir ve TLS sertifikası bağlantıyı şifreler. Birindeki hata diğerinde görünse de çözümü farklıdır. Bu rehber Ubuntu 24.04 LTS üzerinde küçük bir statik siteyi HTTP ile açıp ardından Let’s Encrypt sertifikasıyla HTTPS’e taşır.
Örnekteki example.com ve www.example.com adlarını size ait alan adlarıyla değiştirin. Mevcut siteleri olan bir sunucuda dosyaları doğrudan kopyalamayın; site adları, portlar ve sertifika düzeni çakışabilir. Yeni bir VPS veya ayrı test sunucusu başlangıç için daha uygundur.
Bu rehberle neler yapabilirsiniz?
- DNS, HTTP ve TLS hatalarını birbirinden ayırmak
- Tek site için okunabilir Nginx yapılandırması oluşturmak
- Sertifika yenilemesini ve yayın sonrası kontrolleri yapmak
Ubuntu 24.04 LTS · dağıtımın Nginx paketi · Certbot snap
Başlamadan önce- Ubuntu 24.04 LTS, sudo yetkili kullanıcı ve çalışan SSH erişimi
- Yönetebildiğiniz bir alan adı ve VPS’nin gerçek IPv4 adresi
- 80 ve 443 numaralı TCP portlarına gelen erişim; SSH kuralı korunmuş güvenlik duvarı
Önce yayın yolunu netleştirin
- 01Alan adı / DNS
- 02VPS · TCP 80/443
- 03Nginx site yapılandırması
- 04HTML dosyası veya uygulama
DNS, sunucuya hangi IP üzerinden ulaşılacağını belirler. Nginx ise Host başlığına göre hangi içeriğin döneceğine karar verir.
Alan adınızın A kaydını VPS’nin IPv4 adresine yönlendirin. www alt alanını da kullanacaksanız onun için A veya uygun CNAME kaydı gerekir. IPv6 kullanmıyorsanız başka bir sunucuya giden eski AAAA kaydını bırakmayın. Tarayıcı veya sertifika doğrulayıcı IPv6’yı seçtiğinde yalnız bazı ziyaretçilerin hata görmesi bu yüzden olabilir.
DNS sağlayıcınız bir proxy/CDN sunuyorsa ilk doğrulamada hangi uç noktanın yanıt verdiğini bilin. Sertifika isteği, seçtiğiniz doğrulama yöntemine göre alan adından sunucuya ulaşabilmelidir. DNS yayılımı için tek sabit bekleme süresi varsaymayın; yetkili kaydı ve dış çözümleyicilerdeki yanıtı kontrol edin.
getent ahosts example.com
getent ahosts www.example.comNginx’i kurun ve önce HTTP yanıtını doğrulayın
Yeni test sunucusunda dağıtımın paketlerini kullanın. Bu işlem mevcut Nginx kurulumunu ve sitelerini devralmak için bir göç talimatı değildir. UFW etkinse önce SSH erişiminizin izinli olduğunu doğrulayın; sonra yalnız web portlarını ekleyin. Sunucuyu yönettiğiniz SSH oturumunu testler bitene kadar açık tutun.
sudo apt update
sudo apt install nginx
sudo install -d -m 0755 /var/www/example.com
printf '<!doctype html><html lang="tr"><meta charset="utf-8"><title>İlk yayın</title><h1>VPS yayında</h1></html>\n' | sudo tee /var/www/example.com/index.html >/dev/null
sudo ufw status
# Yalnız UFW kullanıyorsanız ve SSH kuralınız doğrulandıysa:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpAşağıdaki dosyayı /etc/nginx/sites-available/example.com adıyla kaydedin. root satırındaki dizin ile dosyanın yerini eşleştirin. Varsayılan siteyi silmek yerine alan adınıza ait server_name eşleşmesini test edin. IPv6 dinleme satırı IPv6 destekleyen normal Ubuntu kurulumları içindir.
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
sudo nginx -t
# Test başarılıysa:
sudo systemctl reload nginx
curl -I -H "Host: example.com" http://127.0.0.1/
curl -I http://example.com/HTTP çalıştıktan sonra HTTPS sertifikasını alın
Certbot’un resmî Nginx yönergesi snap kurulumunu önerir. Mevcut bir Certbot kurulumu varsa apt ve snap yöntemlerini üst üste eklemek yerine mevcut kurulumun kaynağını ve yenileme görevini inceleyin. Aşağıdaki adımlar Certbot kurulmamış yeni Ubuntu 24.04 sunucusu içindir. Sertifika almak için yalnız yönlendirmesini yaptığınız ve erişilebilir alan adlarını ekleyin.
sudo apt install snapd
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
sudo cp -a /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com.before-tls
sudo certbot --nginx -d example.com -d www.example.comCertbot’un e-posta ve kullanım koşulları sorularını yanıtlayın; HTTP’den HTTPS’e yönlendirme seçimini değerlendirin. www kaydı hazır değilse o adı komuta eklemeyin. Başarısız denemeleri hızlıca tekrarlamak yerine doğrulama hatasını çözün; sertifika otoritesinin istek sınırları vardır.
sudo nginx -t
curl -I https://example.com/
curl -I http://example.com/
sudo certbot certificates
sudo certbot renew --dry-run
systemctl list-timers --all | grep certbotBaşarılı dry-run, mevcut koşullarda yenileme provasının geçtiğini gösterir. DNS, güvenlik duvarı veya Nginx yönlendirmesi sonradan değişirse yenileme yine bozulabilir. Sertifika bitiş süresini dışarıdan izlemek ve yenileme günlüklerini kontrol etmek bakımın parçasıdır. Sertifikanın varlığı uygulamanın güvenli veya yedekli olduğu anlamına gelmez.
Hata mesajını doğru katmanda çözün
| Belirti | İlk kontrol | Sonraki adım |
|---|---|---|
| Bağlantı zaman aşımı | IP, 80/443 erişimi ve güvenlik duvarı | DNS’ten gelen IP ile VPS adresini karşılaştırın. |
| Nginx varsayılan sayfası | server_name ve etkin site bağlantısı | Host başlığıyla yerel isteği tekrarlayın. |
| 403 Forbidden | Dizin izinleri ve index.html varlığı | Nginx kullanıcısının dosyayı okuyabildiğini doğrulayın. |
| Sertifika alan adı uyuşmazlığı | İstenen alan adı ve sertifika adları | www ve ana alan için DNS/TLS kapsamını inceleyin. |
| HTTPS açılıyor, bazı varlıklar yüklenmiyor | Tarayıcı konsolundaki mixed content | CSS/JS/görsel URL’lerini HTTPS veya göreli yol yapın. |
sudo systemctl status nginx --no-pager
sudo journalctl -u nginx -n 50 --no-pager
sudo tail -n 50 /var/log/nginx/error.logGünlükleri destek için paylaşırken kullanıcı IP’lerini, oturum belirteçlerini ve URL içindeki özel bilgileri ayıklayın. Yeni bir site hatasında tüm sunucunun dosya izinlerini 777 yapmak veya güvenlik duvarını kapatmak sorunu kalıcı olarak çözmez; erişimi gereksiz yere genişletir.
Yayını tamamlayın ve geri dönüş yolunu koruyun
- Ana alan ve www için beklediğiniz HTTPS yanıtını ayrı ayrı açın; hangi adresin asıl adres olduğunu belirleyin.
- Var olmayan bir dosyanın gerçek 404 döndürdüğünü kontrol edin. Her hatayı ana sayfaya yönlendirmeyin.
- HTML içindeki canonical, iç bağlantılar ve sitemap aynı HTTPS adresini kullanmalı.
- Yeni yapılandırmayı nginx -t sonrasında yükleyin. Önceki dosyayı ve sertifika düzenini yedekleyin.
- Uygulama dosyaları ve veri için VPS dışında yedek alın; sertifika yenilemesi bir yedekleme yöntemi değildir.
Bu yapı statik site sunar. Node.js gibi çalışan bir uygulama için root dizini yerine reverse proxy gerekir; aşağıdaki ilgili Node.js rehberi bu modeli açıklar. Önbellek ve sıkıştırmayı eklemeden önce doğru içerik, durum kodu ve HTTPS davranışını doğrulayın. Küçük bir site için en düşük paket kaynak açısından yeterli olabilir; gerçek gereksinimi içerik boyutu, ziyaret yoğunluğu ve ek uygulamalar belirler.
İnceleme kapsamı
Resmî dokümanlar ve örnek yapılandırmalar 30 Eylül 2026 tarihinde incelendi. Bu rehberdeki tam kurulum boş bir VPS üzerinde uçtan uca çalıştırılmadı. Mevcut sunucunuzu değiştirmeden önce ayrı bir deneme ortamında, kendi sürüm ve erişim koşullarınızla doğrulayın.
Resmî kaynaklar
Sürüm ve yapılandırma ayrıntılarını ilgili projenin güncel belgelerinden takip edin.