Paylaşımlı hosting kolaydır, ancak bir VPS size hız, root erişimi ve gürültülü komşu sorunu olmadan çalışma sunar. Bu rehber, sıfır kurulmuş bir Ubuntu 24.04 veya 22.04 sunucuyu Nginx ile yaklaşık yirmi dakikada canlı bir HTTPS web sitesine dönüştürür. Her komut olduğu gibi kopyalanabilir.
Neye ihtiyacınız var
- En az 1 vCPU ve 1 GB RAM'e sahip bir VPS (temel planlarımız çoğu küçük site için yeterlidir).
- Sunucunun IP adresine yönlendirilmiş bir alan adı (bkz. alan adını VPS'e yönlendirme rehberimiz).
- sudo yetkili bir kullanıcıyla SSH erişimi. Sunucu yepyeniyse önce temel güvenlik sertleştirmesini yapın.
1. Nginx'i kurun
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
Sunucunuzun IP adresini tarayıcıda açın. Varsayılan Nginx karşılama sayfasını görmelisiniz. Görmüyorsanız güvenlik duvarınızın 80 ve 443 numaralı portlara izin verdiğini kontrol edin:
sudo ufw allow "Nginx Full"
sudo ufw status
2. Site klasörünü oluşturun
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>It works</h1>" > /var/www/example.com/html/index.html
Baştan sona example.com yerine kendi alan adınızı yazın.
3. Bir server bloğu ekleyin
sudo nano /etc/nginx/sites-available/example.com
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Etkinleştirin, yapılandırmayı test edin ve yeniden yükleyin:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
4. Let's Encrypt ile ücretsiz HTTPS ekleyin
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot server bloğunuzu düzenler, HTTP'yi HTTPS'e yönlendirir ve sertifikayı otomatik yenileyen bir zamanlayıcı kurar. Zamanlayıcıyı systemctl list-timers | grep certbot ile kontrol edin.
5. Daha hızlı hale getirin
Statik dosyalar için sıkıştırmayı ve tarayıcı önbelleğini açın. Bunu server bloğunun içine ekleyin:
gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;
location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
expires 30d;
add_header Cache-Control "public";
}
Ardından Nginx'i yeniden yükleyin. WordPress gibi dinamik siteler için PHP-FPM kurun ve .php isteklerini ona iletin ya da önüne bir önbellek eklentisi koyun.
Sık karşılaşılan sorunlar
- 403 Forbidden: Nginx klasörü okuyamıyor. Sahipliği ve her üst dizinin çalıştırılabilir olduğunu kontrol edin (
chmod o+x). - Certbot başarısız oluyor: alan adı henüz sunucuya yönlenmemiş ya da 80 numaralı port engelli.
- Varsayılan sayfa hâlâ görünüyor:
/etc/nginx/sites-enabled/defaultdosyasını silin ve yeniden yükleyin.