VPS, kullanıcılara paylaşımlı hosting’e kıyasla çok daha fazla özgürlük ve kontrol imkânı sunar. Birden fazla web sitesini aynı sunucu üzerinde çalıştırmak, özellikle maliyetleri azaltmak ve yönetimi tek noktada toplamak isteyen işletmeler için oldukça avantajlıdır.
VPS Kurulumu
İlk olarak kullanacağımız VPS’i hazırlayalım. Güvenilir bir sağlayıcıdan (örneğin Pendc) uygun kaynaklara sahip bir VPS seçelim. Sunucumuzun sistemi güncel olmalı ki performans ve güvenlik açısından sorun yaşamayalım
Sunucunun Güncellenmesi
Terminal kodumuzla VPS sunucumuzu güncelleyelim.
sudo apt update && sudo apt upgrade -y
Web Sunucusu Kurulumu
Şimdi web sitelerimizi yayınlayacağımız sunucuyu kuralım. Biz örneğimizde Nginx kullanacağız çünkü hızlı, hafif ve çoklu site yönetiminde oldukça pratik.
Nginx’i Yükleyelim
sudo apt install nginx -y
Kurulum bittiğinde servisi aktif hale getirelim ve sunucumu yayınlayalım.
sudo systemctl enable nginx
sudo systemctl start nginx
*Centos sistemlerindeki sunucu kurulumu için apt olanları yum ile değiştirelim.
Çoklu Site Yapılandırmasını Yapalım
Bir VPS’te birden çok web site yapılandırmamız için sanal makinemizi buna uygun hale getirmemiz gerekir. Her siteye özel dizinler oluşturalım, yapılandırma dosyalarını yazalım ve etkinleştirelim.
Her Site İçin Dizin Açalım
sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.com/html
Erişim İzinlerini Ayarlayalım
sudo chown -R $USER:$USER /var/www/site1.com/html
sudo chown -R $USER:$USER /var/www/site2.com/html
Sanal Ana Bilgisayarları Tanımlayalım
Aşağıdaki terminalde Nginx tabanlı sistemi ele aldık.
sudo nano /etc/nginx/sites-available/site1.com
Ve içine şu kodu yazalım. Daha sonra aynısını site2.com için de düzenleyelim.
server {listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com/html;
index index.html;
location / {try_files $uri $uri/ =404;}}
Sanal Siteleri Aktif Edelim
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Alan Adlarımızı Yönlendirelim
Şimdi domain’leri VPS’imize bağlayalım. DNS ayarlarını yapalım ki her site kendi adresinden erişilebilir hale gelsin.
Sunucu IP Adresini Bulalım
Bu komut VPS’in IP’sini gösterir.
hostname -I
DNS Kayıtlarını Güncelleyelim
Domain sağlayıcımızın DNS paneline gidelim ve şu kayıtları ekleyelim. Birkaç saat içinde DNS yayılımı tamamlanır ve sitelerimiz yönlenir.
- Tür A
- Adı example1.com
- Değer (VPS IP)
A site1.com → VPS IP adresi
A www.site1.com → VPS IP adresi
Bu aşamada DNS kayıt türlerini doğru yapılandırmak oldukça önemlidir.
Hangi kayıt türünün ne işe yaradığını merak edenler için,
DNS kayıt türleri (NS, CNAME, TXT, AAAA ve MX) üzerine kapsamlı bir rehber bağlantısını incelemenizi öneririm.
Birkaç saat içinde DNS yayılımı tamamlanır ve sitelerimiz doğru şekilde VPS’e yönlenir.
Bu işlem tamamlandığında her domain, kendi adresi üzerinden erişilebilir hale gelir.
SSL Sertifikamızı Kurulumu
Güvenlik olmazsa olmaz. Şimdi sitelerimizi HTTPS’e taşıyalım. Bunun için Let’s Encrypt kullanacağız tamamen ücretsiz ve otomatik.
Sertifika Kurulumunu Yapalım
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d site1.com -d www.site1.com
sudo certbot --nginx -d site2.com -d www.site2.com
Kurulum tamamlandığında her iki sitemiz de artık güvenli bir HTTPS bağlantısıyla çalışacaktır.
Certbot, bu sertifikaları otomatik yeniler.
Sitelerin Yönetimi ve Takibi
Artık web sitelerimizin yayınlama sürecini tamamladık. Şimdi sırada performans, güvenlik ve yedekleme adımlarını sağlamlaştırmak var.
Böylece sitelerimiz kesintisiz çalışır, olası sorunları erkenden fark eder ve veri kaybını önlemiş oluruz.
Sunucu Takibi
VPS üzerinde birden fazla site çalışırken sistem kaynaklarını yakından takip etmek gerekir.
CPU, RAM ve disk kullanımı gibi metrikleri izlemek performans kayıplarını önlemeye yardımcı olur.
Bunun için birkaç etkili aracımız var.
- htop ile anlık işlem yükünü ve bellek kullanımını izleyelim. Bu araç, hangi servislerin yoğun kaynak tükettiğini anlamamıza yardımcı olur.
- glances ile genel sistem sağlığını ve ağ trafiğini gerçek zamanlı olarak takip edelim.
- Netdata gibi grafik arayüzlü izleme araçlarıyla uzun dönemli performans değişimlerini kolayca analiz edelim.
Bu araçlar sayesinde sistemin sınırlarına yaklaşmadan önlem alabilir, kullanıcı deneyimini her zaman en üst düzeyde tutabiliriz.
Güvenlik
Birden fazla sitenin aynı sunucuda çalışması, saldırı risklerini de artırabilir. Bu nedenle temel güvenlik önlemlerini devreye alalım. İlk olarak UFW kullanarak yalnızca gerekli portları açık bırakalım.
*Genellikle 22 (SSH), 80 (HTTP) ve 443 (HTTPS) portları yeterlidir.
Ayrıca brute-force saldırılarını engellemek için Windows Sunucularda Wail2ban aracından yararlanalım. Bu araç, başarısız oturum açma girişimlerini algılayarak şüpheli IP adreslerini otomatik olarak engeller ve Windows sunucularda etkili bir koruma katmanı oluşturur.
Bu adımların her biri, sitelerimizi siber tehditlere karşı daha dirençli hale getirir ve sunucularımızın güvenliğini uzun vadede korur.
Yedekleme Planı
Her ne kadar güvenlik önlemleri alınsa da veri kaybı riskini tamamen ortadan kaldırmak mümkün değildir.
Bu nedenle düzenli bir yedekleme planı oluşturmak, olası donanım arızaları veya siber olaylar sonrasında hızlı şekilde sistemi geri yüklemeyi sağlar.
Verilerinizi güvenli bir şekilde kopyalamak için rsync komutunu kullanarak iki sunucu arasında dosya transferi yapabilirsiniz. Bu yöntem, otomatik ve güvenilir yedekleme işlemleri için en verimli çözümlerden biridir.
Ayrıca cron job veya snapshot sistemleriyle günlük, haftalık ya da aylık periyotlarda düzenli yedekleme görevleri oluşturabilirsiniz. Her web sitesine ait yedekleri ayrı dizinlerde tutarak karışıklığı önlemek de iyi bir pratiktir.
Bu yaklaşım sayesinde olası veri kayıplarında saniyeler içinde geri dönüş yapabilir, kesintisiz hizmet sağlamaya devam edebilirsiniz.
Sık Sorulan Sorular
Bir VPS üzerinde kaç web sitesi barındırılabilir?
Bu tamamen VPS’in sahip olduğu işlemci gücü, RAM ve disk kapasitesine bağlıdır. Donanım kaynakları yeterliyse tek IP üzerinden birden fazla siteyi aynı anda çalıştırabilirsiniz.
Farklı domainler aynı IP adresinde çalışabilir mi?
Evet. Nginx veya Apache yapılandırmalarında “virtual host” yöntemiyle birden fazla domain tek IP adresi üzerinden hizmet verebilir. Web sunucusu, gelen isteğin hangi domain’e ait olduğunu HTTP başlığıyla algılar ve doğru dizine yönlendirir.
DNS kayıtlarını VPS’e yönlendirdikten sonra site neden açılmıyor?
DNS yayılımı henüz tamamlanmamış olabilir. Bu işlem genellikle birkaç saat sürer. Ayrıca DNS kayıt türlerinde hata varsa dig veya nslookup komutlarıyla sorgulama yaparak doğru IP’ye yönlenip yönlenmediğini kontrol edebilirsiniz.
Let’s Encrypt SSL sertifikaları otomatik olarak yenilenir mi?
Certbot kurulduysa Let’s Encrypt sertifikaları 90 gün sonunda otomatik olarak yenilenir. Ancak emin olmak için aşağıdaki komutunu çalıştırarak yenileme sürecini manuel test edebilirsiniz.
sudo certbot renew --dry-run
Wail2ban hangi saldırılara karşı koruma sağlar?
Wail2ban özellikle brute-force saldırılarını engellemek için tasarlanmıştır. Başarısız oturum açma girişimlerini izler, belirli bir eşik değerini aşan IP adreslerini engeller. Ayrıntılı anlatım için Windows sunucularda Wail2ban ile brute-force koruması rehberini inceleyebilirsiniz.
