Ana Sayfa / Dokümanlar / Web Sunucusu Kurulumu
KTD-001

Ubuntu 24.04 Üzerine Docker ve Nginx ile Web Sunucusu Kurulumu

Bu dokümanda sıfır kurulumlu bir Ubuntu Server 24.04 LTS VPS üzerinde güvenli, Docker tabanlı ve Nginx destekli bir web sunucusunun adım adım nasıl kurulacağını öğreneceksiniz.

Ubuntu 24.04 Docker Nginx UFW Fail2Ban SSL
Okuma Süresi 45-60 dakika
Bölüm Sayısı 15 bölüm
Son Güncelleme Temmuz 2026
Seviye Başlangıç - Orta

Sunucuya SSH ile Bağlanma

Bu bölümde Ubuntu 24.04 VPS sunucusuna SSH ile güvenli şekilde bağlanacağız. SSH bağlantısı, sunucuyu uzaktan yönetebilmemiz için temel gereksinimdir.

🎯 Amaç

VPS sunucusuna terminal üzerinden güvenli bağlantı kurmak ve bağlantının başarılı olduğunu doğrulamak.

SSH Bağlantı Komutu

ssh -v ubuntu@SUNUCU_IP_ADRESI

Örnek kullanım:

ssh -v ubuntu@57.xxx.xxx.xxx
💡 İpucu

İlk bağlantılarda -v parametresi bağlantı sürecini ayrıntılı gösterdiği için hata ayıklamada oldukça faydalıdır.

İlk Bağlantı Uyarısı

İlk bağlantıda aşağıdaki uyarı görülebilir:

The authenticity of host '57.xxx.xxx.xxx' can't be established.
Are you sure you want to continue connecting (yes/no)?

Devam etmek için:

yes
SSH Bağlantısı SSH bağlantısı ekran görüntüsü

Başarılı Bağlantı

Bağlantı başarılı olduğunda terminal ekranında aşağıdakine benzer bir ifade görülür:

ubuntu@server:~$
✅ Bu Bölümde Ne Öğrendik?
  • SSH bağlantısının ne işe yaradığını öğrendik.
  • VPS sunucusuna terminal üzerinden bağlandık.
  • İlk bağlantı güvenlik uyarısını inceledik.

Root Yetkisi Alma

Linux sistemlerde birçok yönetim işlemi root yetkisi gerektirir. Bu bölümde root kullanıcısına geçecek ve yetkimizi doğrulayacağız.

⚠️ Dikkat

Root kullanıcısı sistem üzerinde tam yetkiye sahiptir. Bu nedenle komutları çalıştırmadan önce dikkatli olun.

Root Kullanıcısına Geçiş

sudo -i

Yetki Kontrolü

Root kullanıcısına geçtiğimizi doğrulamak için:

whoami

Beklenen çıktı:

root

Root Parolasını Değiştirme

passwd
SSH Bağlantısı sudo -i ve whoami bağlantısı ekran görüntüsü
✅ Bu Bölümde Ne Öğrendik?
  • Root kullanıcısının ne olduğunu öğrendik.
  • sudo -i ile root yetkisi aldık.
  • whoami ile kullanıcı doğrulaması yaptık.

Ubuntu Sistem Güncellemesi

Yeni kurulan bir sunucuda ilk yapılması gereken işlemlerden biri sistem paketlerini güncellemektir. Bu işlem güvenlik, kararlılık ve performans açısından önemlidir.

Paket Listesini Güncelleme

apt update

Tam Sistem Güncellemesi

apt full-upgrade -y

Tek Komutta Güncelleme

apt update && apt full-upgrade -y

Gereksiz Paketleri Temizleme

apt autoremove -y
💡 Gerçek Hayat Notu

Sunucu kurulumundan sonra eski paketlerle işlem yapmamak için her zaman ilk adım olarak sistem güncellemesi yapılmalıdır.

SSH Bağlantısı apt update ve full-upgrade çıktıları ekran görüntüsü
✅ Bu Bölümde Ne Öğrendik?
  • Ubuntu paket listesini güncelledik.
  • Sistemdeki paketleri yükselttik.
  • Gereksiz paketleri temizledik.

UFW Güvenlik Duvarı Kurulumu

UFW, Ubuntu üzerinde güvenlik duvarı kurallarını kolayca yönetmemizi sağlar. Bu bölümde SSH, HTTP ve HTTPS portlarını açarak temel güvenlik duvarı yapılandırmasını yapacağız.

UFW Kurulumu

apt install ufw -y

SSH Bağlantısını Açık Bırakma

ufw allow OpenSSH

Web Portlarını Açma

ufw allow 80/tcp
ufw allow 443/tcp

Firewall Aktifleştirme

ufw enable

Durum Kontrolü

ufw status
⚠️ Kritik Uyarı

UFW aktif edilmeden önce mutlaka ufw allow OpenSSH komutu çalıştırılmalıdır. Aksi halde SSH bağlantınız kesilebilir.

SSH Bağlantısı ufw status çıktısı ekran görüntüsü
✅ Bu Bölümde Ne Öğrendik?
  • UFW güvenlik duvarını kurduk.
  • SSH, HTTP ve HTTPS portlarını açtık.
  • Firewall durumunu kontrol ettik.

Fail2Ban Kurulumu

Fail2Ban, başarısız giriş denemelerini takip ederek belirli sayıda hatalı deneme yapan IP adreslerini geçici olarak engeller. Bu sayede SSH brute-force saldırılarına karşı ek koruma sağlar.

Fail2Ban Kurulumu

apt install fail2ban -y

Servisi Etkinleştirme

systemctl enable fail2ban
systemctl start fail2ban

Servis Durumu

systemctl status fail2ban
ℹ️ Bilgi

Servis çıktısında active (running) ifadesi görülüyorsa Fail2Ban başarıyla çalışıyor demektir.

SSH Bağlantısı systemctl status fail2ban ekran görüntüsü
✅ Bu Bölümde Ne Öğrendik?
  • Fail2Ban yazılımını kurduk.
  • Servisi başlattık ve otomatik başlatmaya ekledik.
  • Fail2Ban servis durumunu kontrol ettik.

Docker Engine Kurulumu

Docker, uygulamaları container olarak çalıştırmamızı sağlayan modern sanallaştırma platformudur. Bu bölümde Docker Engine kurulacaktır.

Docker Sürümünü Kontrol Etme

docker --version

Docker Gerekli Paketler

apt install ca-certificates curl gnupg -y

Docker Kurulum

apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Servis Durumu

systemctl status docker
SSH Bağlantısı systemctl status Docker ekran görüntüsü

Docker Compose

Docker Compose ile birden fazla container tek dosya üzerinden yönetilebilir.

docker compose version

İlk Proje Klasörü Oluşumu

mkdir -p /opt/docker/web
cd /opt/docker/web

Docker-compose.yml Oluşturma

compose dosyası oluşturulur ve servisler burada tanımlanır.
    nano docker-compose.yml 

Servisi Durdurma

docker compose down

Servisi Başlatma

docker compose up -d
SSH Bağlantısı Docker Compose ekran görüntüsü

Nginx Web Sunucusu

Nginx Paketini Kur

apt install nginx -y

Bu bölümde Docker üzerinde çalışan Nginx web sunucusunu yayınlayacağız.

docker compose up -d

HTML Klasörü Oluşturma

mkdir -p /opt/docker/web/html

docker-compose.yml Dosyası

services:
  nginx:
    image: nginx:latest
    container_name: nginx
    restart: unless-stopped
    ports:
      - '80:80'
    volumes:
      - ./html:/usr/share/nginx/html:ro

Container Kontrolü

docker ps
SSH Bağlantısı Nginx çalışıyor ekran görüntüsü

Domain ve DNS Yapılandırması

Alan adımızı VPS sunucusuna yönlendirerek web sitemizi internet üzerinden erişilebilir hale getiriyoruz.

dig kemaltokmak.com
ping kemaltokmak.com
SSH Bağlantısı Domain DNS ekran görüntüsü

SSL Sertifikası

Let's Encrypt SSL sertifikası ile web sitemizi HTTPS üzerinden yayınlıyoruz.

certbot renew --dry-run
SSH Bağlantısı SSL başarılı ekran görüntüsü

Docker Üzerinde Nginx Reverse Proxy

Reverse Proxy sayesinde tek sunucu üzerinde birden fazla web sitesi güvenli şekilde yayınlanabilir.

proxy_pass http://172.18.0.5:80;

Docker Container Yönetimi

Çalışan container'ları izlemek, logları incelemek ve sistem durumunu kontrol etmek bu bölümün konusudur.

docker ps
docker logs nginx
docker stats

Docker Backup

Docker Compose dosyaları, image'lar ve volume'ler düzenli olarak yedeklenmelidir.

tar -czvf docker-backup.tar.gz /opt/docker
docker save nginx -o nginx.tar
SSH Bağlantısı SSL başarılı ekran görüntüsü

Sorun Giderme

Docker, Nginx, DNS ve SSL tarafında oluşabilecek yaygın hatalar bu bölümde açıklanmaktadır.

Kontrol Listesi
  • Docker çalışıyor mu?
  • Nginx çalışıyor mu?
  • Firewall aktif mi?
  • DNS doğru mu?
  • SSL aktif mi?

Sonuç

Tebrikler. Ubuntu 24.04 üzerine güvenli bir Docker tabanlı web sunucusu kurmayı öğrendiniz.

Bu Dokümanda Öğrendikleriniz
  • SSH
  • Root
  • Ubuntu Güncelleme
  • UFW
  • Fail2Ban
  • Docker
  • Docker Compose
  • Nginx
  • DNS
  • SSL
  • Backup
  • Troubleshooting