Skip to content
Back to blog
Teknoloji Statik Site Web Mimarisi CI/CD CDN Performans Güvenlik

Modern Statik Site Yayınlama Mimarisi: Performans ve Güvenlik Odaklı Bir Yaklaşım

Statik site oluşturucuların (SSG) yükselişiyle değişen web yayıncılığı dünyasında, modern bir statik site mimarisini uçtan uca tasarlamayı ve optimize etmeyi öğrenin.

Caner Serbest

Sistem ve Altyapı

3 min read

Modern Statik Site Yayınlama Mimarisi: Performans ve Güvenlik Odaklı Bir Yaklaşım

Web dünyasında son yıllarda yaşanan en büyük paradigma değişimlerinden biri, sunucu taraflı render (SSR) süreçlerinin ağırlığından kurtulup statik içeriklerin gücünü keşfetmemiz oldu. Caner Serbest olarak, sistem yönetimi ve altyapı çalışmalarımda gözlemlediğim en büyük verimlilik artışlarından biri, statik site mimarisine geçiş yapmak oldu. Peki, bu mimariyi sadece bir dosya sunucusu olarak değil, profesyonel bir yapı olarak nasıl kurgularız?

Statik Site Mimarisine Giriş

Statik site mimarisi, veritabanı sorguları, sunucu tarafındaki script çalıştırma süreleri ve yüksek bellek tüketimi gibi geleneksel web sorunlarını ortadan kaldırır. Sayfalarınız build aşamasında önceden oluşturulur ve sunucu, sadece önceden hazır olan HTML, CSS ve JavaScript dosyalarını tarayıcıya iletir. Bu, hem hız hem de güvenlik açısından muazzam bir avantajdır.

Mimari Bileşenler

Bir statik site altyapısında üç temel katman bulunur:

  1. İçerik Yönetimi ve Kaynak (Source Control): Genellikle Git tabanlı bir depo.
  2. Otomasyon Hattı (CI/CD Pipeline): İçeriğin işlenip statik dosyalara dönüştürüldüğü aşama.
  3. Dağıtım ve Yayınlama (Hosting & CDN): Kullanıcıya en yakın noktadan dosyanın servis edildiği uç nokta.

CI/CD ile Otomasyon

Modern bir iş akışında, git push komutunu verdiğiniz an bir süreç tetiklenmelidir. Örnek olarak bir GitHub Actions konfigürasyonu, sitenizi her commit sonrası yeniden oluşturup sunucuya aktarabilir:

name: Build and Deploy
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Build Site
        run: |
          npm install
          npm run build
      - name: Deploy to Server
        uses: easingthemes/ssh-deploy@main
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
          TARGET_DIR: /var/www/html/mysite

Performans Optimizasyonları

Statik siteler zaten hızlıdır, ancak bazı dokunuşlarla ışık hızına ulaşabilirler:

1. Asset Pipeline Yönetimi

Görsellerinizi modern formatlarda (WebP veya AVIF) saklamak ve derleme aşamasında sıkıştırmak, sayfa yükleme süresini %60’a kadar azaltabilir. ImageMagick veya benzeri araçları derleme hattınıza dahil edin.

2. CDN Kullanımı

Dosyalarınızı sadece tek bir merkez sunucuda değil, bir İçerik Dağıtım Ağı (CDN) üzerinde barındırın. Cloudflare veya benzeri çözümler, statik dosyalarınızı dünyanın farklı noktalarındaki sunuculara kopyalayarak, kullanıcının size fiziksel olarak en yakın noktadan veri çekmesini sağlar.

Güvenlik Stratejileri

Statik sitelerin doğası gereği SQL enjeksiyonu veya veritabanı açıklarından etkilenme riskleri sıfıra yakındır. Ancak yine de dikkat edilmesi gereken hususlar vardır:

  • Header Güvenliği: HTTP yanıtlarınızda Content-Security-Policy, X-Content-Type-Options ve Strict-Transport-Security başlıklarını mutlaka kullanın.
  • Dizin Listeleme: Sunucu yapılandırmanızda dizin listelemeyi (directory indexing) devre dışı bırakın. Nginx kullanıyorsanız:
location / {
    autoindex off;
    try_files $uri $uri/ =404;
}

Gerçek Dünya Senaryosu: Ölçeklendirme

Büyük ölçekli bir statik yapıda en önemli zorluk, içerik güncellemelerinin ne kadar hızlı yansıdığıdır. “Invalidation” süreçlerini yönetmek için CDN üzerinde “Cache Purge” API’lerini kullanmak, sitenizin güncel kalmasını sağlar. Örneğin, bir blog yazısı yayımladığınızda otomatik olarak CDN önbelleğini temizleyen bir webhook mekanizması kurmak, sistem yöneticisinin iş yükünü neredeyse yok eder.

Sonuç

Statik site yayınlama mimarisi, sadece hız değil, aynı zamanda operasyonel bir huzurdur. Veritabanı çökmesi, sunucu tarafındaki RAM yetersizliği gibi dertlerden kurtulursunuz. Önemli olan, bu yapıları disiplinli bir CI/CD süreciyle birleştirmek ve güvenlik katmanlarını doğru yapılandırmaktır.

Kendi altyapınızı kurarken şu üç adımı unutmayın:

  1. Minimalist başlayın: Karmaşık frameworklerden ziyade ihtiyacınız olan işlevselliği sağlayan basit araçları tercih edin.
  2. Otomatiğe bağlayın: Elle dosya kopyalamak geçmişte kaldı.
  3. İzleyin: Küçük de olsa bir izleme aracı (örneğin Uptime Kuma) ile sitenizin erişilebilirliğini takip edin.

Teknolojiyle üretim yapmak, sadece bir çıktı almak değil, o çıktının sürdürülebilir bir altyapı üzerinde yaşamasını sağlamaktır. Kendi mimarinizi oluştururken karşılaştığınız zorluklar, aslında sizin uzmanlık seviyenizi belirleyen gerçek öğrenme anlarıdır.” .” } } }dır.” olaylarıdır. Bu rehberin, kendi projelerinizde sağlam ve performanslı yapılar kurmanıza yardımcı olmasını umuyorum.” umuyorum.


Bu yazı Gemini ile otomatik oluşturulmuştur.