Web Uygulaması İçin Sunucu Kurulumu Kontrol Listesi
Yeni bir sunucuya uygulama kurarken atlanan tek bir adım aylar sonra kesintiye dönüşebilir. Canlıya çıkmadan önce kontrol etmeniz gereken adımları sırasıyla listeledim.
İçindekiler
Yeni kiraladığınız sunucu birkaç dakika içinde hazır oluyor; size bir IP adresi ve yönetici şifresi geliyor. Asıl iş bundan sonra başlıyor. Uygulamayı yükleyip çalıştırmak bir saat sürebilir, ama güvenli, yedekli ve izlenen bir sunucu kurulumu çok daha fazla özen ister. Bu yazıda bir web uygulamasını canlıya almadan önce izlediğim sunucu kurulumu kontrol listesini, adımların neden önemli olduğuyla birlikte paylaşıyorum.
Kuruluma başlamadan önce kararlar
Sunucuya ilk komutu yazmadan önce birkaç temel kararın verilmiş olması gerekir. Bu kararlar sonradan değiştirilebilir ama değiştirmek her zaman daha zahmetlidir.
- Sunucu türü ve boyutu: Paylaşımlı hosting mi, VPS mi, bulut sunucu mu? Bu ayrımı VPS nedir yazısında ayrıntılı anlattım.
- İşletim sistemi: Uzun süreli destek (LTS) sürümü olan bir Linux dağıtımı, güvenlik güncellemelerini yıllarca almanızı sağlar.
- Veri merkezi konumu: Kullanıcılarınıza yakın ve kişisel veri açısından uygun bir lokasyon.
- Uygulama mimarisi: Uygulama doğrudan mı, yoksa Docker kapsayıcılarıyla mı çalışacak?
- Alan adı düzeni: Ana site, panel ve API için hangi adresler kullanılacak?
Sunucu kurulumu: İlk saatte yapılması gerekenler
Sunucu internete açıldığı andan itibaren otomatik tarayıcıların hedefidir. Bu yüzden ilk adımlar güvenlikle ilgilidir:
- Sistemi güncelleyin: Kurulum imajı birkaç ay eski olabilir; ilk iş tüm paketleri güncellemektir.
- Yönetici olmayan bir kullanıcı oluşturun: Günlük işler root hesabıyla değil, yetkileri sınırlı bir kullanıcıyla yapılmalıdır.
- SSH anahtarıyla girişe geçin: Şifreyle girişi ve doğrudan root girişini kapatın.
- Güvenlik duvarını açın: Yalnızca gerekli portlara (genellikle SSH, HTTP ve HTTPS) izin verin.
- Otomatik güvenlik güncellemelerini etkinleştirin: Kritik yamalar sizi beklemeden uygulanır.
- Saat dilimini ve saat senkronizasyonunu ayarlayın: Loglar, zamanlanmış görevler ve sertifikalar doğru saate bağlıdır.
Bu adımları ve daha ileri sıkılaştırma ayarlarını Linux sunucuda temel sıkılaştırma yazısında ayrıca ele aldım.
Uygulama katmanının kurulumu
Temel güvenlik tamamlandıktan sonra uygulamanın çalışacağı ortam hazırlanır. Bir web uygulaması için tipik katmanlar şunlardır:
| Katman | Görevi | Dikkat edilecek nokta |
|---|---|---|
| Web sunucusu / reverse proxy | İstekleri karşılar, SSL’i yönetir | Uygulama portları dışarıya kapalı olmalı |
| Uygulama çalışma ortamı | PHP, Node.js veya başka bir dil | Projenin desteklediği sürüm sabitlenmeli |
| Veritabanı | Kalıcı verileri tutar | Yalnızca yerelden erişilebilir olmalı |
| Önbellek | Sık istenen veriyi hızlı sunar | Bellek sınırı tanımlanmalı |
| Süreç yöneticisi | Uygulama çökerse yeniden başlatır | Sunucu yeniden başladığında otomatik açılmalı |
Uygulama sunucu yeniden başladığında kendiliğinden ayağa kalkmalıdır. Bunu test etmenin en kolay yolu, kurulum bittikten sonra sunucuyu bilerek yeniden başlatmak ve her şeyin kendiliğinden açıldığını görmektir. Bu basit test, gece yarısı yaşanacak bir sürprizi önler.
Test ortamı ayrı olmalı
Canlı sunucuda deneme yapmak, küçük bir hatanın doğrudan müşterilerinize yansıması demektir. Mümkünse aynı yapıda, daha küçük bir test ortamı kurun ve her güncellemeyi önce orada deneyin. Docker kullanıyorsanız test ve canlı ortamı birebir aynı tutmak oldukça kolaylaşır.
Gizli bilgilerin yönetimi
Veritabanı şifreleri, ödeme sağlayıcısı anahtarları ve e-posta hesap bilgileri kodun içine yazılmamalı, sürüm kontrol deposuna gönderilmemelidir. Bu bilgiler ortam değişkenlerinde veya erişimi kısıtlı yapılandırma dosyalarında tutulur.
Alan adı, DNS ve SSL
Uygulama çalışır hale geldikten sonra alan adının sunucuya yönlendirilmesi gerekir. A ve AAAA kayıtları sunucu IP’sine işaret eder; e-posta kullanıyorsanız MX, SPF ve DKIM gibi kayıtlar da doğru tanımlanmalıdır. DNS değişikliklerinin tüm internete yayılması biraz zaman alabileceği için yönlendirmeyi yoğunluğun az olduğu bir saatte yapmak ve kayıtların ömrünü (TTL) önceden kısaltmak geçişi kolaylaştırır.
SSL sertifikası artık bir tercih değil, zorunluluktur. Ücretsiz sertifika sağlayıcıları ile sertifika alınıp otomatik yenileme ayarlanabilir. Kurulumdan sonra HTTP’nin HTTPS’e yönlendiğini ve sertifikanın tüm alt alan adlarını kapsadığını kontrol edin.
Yedekleme ve izleme: Kurulumun görünmeyen yarısı
Sunucu kurulumu, uygulama çalıştığında bitmez. Bir şey ters gittiğinde ne olacağı da kurulumun parçasıdır:
- Otomatik yedek: Veritabanı ve yüklenen dosyalar düzenli aralıklarla, sunucu dışındaki bir konuma yedeklenmelidir. Ayrıntılar otomatik yedekleme sistemi yazısında.
- Geri yükleme testi: Hiç denenmemiş bir yedek, yedek sayılmaz.
- Erişilebilirlik izleme: Site kapandığında sizin haberdar olmanız gerekir; nasıl kurulacağını uptime izleme yazısında anlattım.
- Disk ve kaynak takibi: Dolan bir disk, en sık karşılaşılan ama en kolay önlenebilen kesinti nedenlerindendir.
- Log döndürme: Log dosyalarının sınırsız büyüyüp diski doldurmasını engelleyin.
Canlıya çıkmadan önce son kontrol
Her şey hazır göründüğünde şu kısa listeyi bir kez daha gözden geçirin:
- Uygulamanın tüm sayfaları HTTPS ile açılıyor mu?
- Veritabanı ve iç servisler dışarıdan erişilemez durumda mı?
- Sunucu yeniden başlatıldığında tüm servisler kendiliğinden açılıyor mu?
- İlk otomatik yedek alındı ve geri yüklenebildiği doğrulandı mı?
- İzleme servisi kesinti bildirimi gönderiyor mu?
- Hata sayfaları ziyaretçiye teknik ayrıntı göstermiyor mu?
- Yönetici erişim bilgileri güvenli bir yerde ve sizin elinizde mi?
Bu işi nasıl birlikte yaparız?
Sunucunuzu sıfırdan kurmak veya mevcut sunucunuzu bu listeye göre gözden geçirmek istiyorsanız süreç şöyle işler:
- İhtiyacı dinleme: Hangi uygulamaların çalışacağını, beklenen trafiği ve verinin hassasiyetini konuşuruz.
- Kapsam ve teklif: Sunucu boyutu, mimari, yedekleme ve izleme düzenini içeren yazılı bir plan ve teklif hazırlarım.
- Kurulum ve test: Bu kontrol listesindeki adımları uygular, yeniden başlatma ve geri yükleme testlerini yaparım.
- Teslim ve destek: Tüm erişim bilgilerini ve yapılandırma notlarını size teslim ederim; isterseniz düzenli bakımla sunucuyu takip ederim.
Projenizi anlatmak için iletişim sayfasını kullanabilirsiniz.
Sık sorulan sorular
Sunucu kurulumu ne kadar sürer?
Süre, uygulamanın karmaşıklığına ve bileşen sayısına göre değişir. Tek bir web sitesi için temel kurulum kısa sürer; birden fazla servis, taşıma ve test adımları eklendiğinde süre uzar. Netlik için kapsamı önceden belirlemek gerekir.
Kontrol paneli (cPanel, Plesk) kullanmak gerekli mi?
Zorunlu değildir. Kontrol panelleri teknik olmayan kullanıcılar için kolaylık sağlar ama ek kaynak tüketir ve bazıları lisans gerektirir. Özel uygulamalarda çoğu zaman panelsiz, sade bir kurulum tercih edilir.
Sunucu erişim bilgileri kimde olmalı?
Sunucu hesabı ve yönetici erişimi mutlaka işletme sahibinde de bulunmalıdır. Geliştirici ayrı bir kullanıcıyla çalışabilir; ancak hesabın sahibi siz olmalısınız.
Kurulumdan sonra bakım gerekir mi?
Evet. Güvenlik güncellemeleri, sertifika yenilemeleri, disk takibi ve yedek kontrolleri düzenli yapılmalıdır. Kurulum ne kadar iyi olursa olsun bakımsız bir sunucu zamanla risk haline gelir.
Sonuç
İyi bir sunucu kurulumu; güvenlik, uygulama katmanı, DNS ve SSL, yedekleme ve izleme adımlarının eksiksiz tamamlanmasıdır. Bu listeyi kendi sunucunuzda uygulamak için destek isterseniz bana yazmanız yeterli.
