Blazor VPS barındırma

Nginx ve HTTPS ile UpCloud’da Blazor Server barındırma

Küçük bir Blazor Server uygulamasının yönetilen platform yerine kendi Ubuntu VPS’sine ihtiyaç duyduğu durumlarda bu rehberi kullanın. Gerçek işleri kapsar: DNS, SSH, .NET, Nginx, TLS, servis yeniden başlatmaları, yedeklemeler ve sunucu sahipliğinin devam eden maliyeti.

Başlangıç noktası, yaklaşık ₺159/ay fiyatıyla basit bir UpCloud sunucusudur. Bu, mütevazı bir üretim lansmanı için yeterli olabilir ancak sadece yamalama, izleme, günlük döndürme ve geri alma alışkanlıklarınızı basit ve tekrarlanabilir tuttuğunuzda.

UpCloud promosyon notu: Siz ve biz her biri ₺1.331 kredi alırsınız. Yönlendirme bağlantısıyla aylık sunucu fiyatınız artmaz.

Hızlı cevap

Kontrol platform rahatlığından önemliyse VPS kullanın

Küçük bir UpCloud VPS, sabit maliyetler, tam Linux erişimi, özel Nginx kuralları, doğrudan günlükler ve inceleyebileceğiniz bir dağıtım akışı istediğinizde iyi bir tercihtir. Ubuntu’yu yamalamak, disk alanını izlemek, yedekleri test etmek veya uygunsuz zamanlarda systemd sorunlarını gidermek istemiyorsanız uygun değildir.

Alan adı ve DNS SSH anahtar erişimi TLS ile Nginx Operasyonlar size ait

Uygunluk kontrolü

İşletme işi kabul edilebilir olduğunda ucuz Blazor VPS faydalıdır

Sunucu fiyatı tek karar değildir. Üretim uygulaması için kendi barındırmanızı seçmeden önce güncellemeler, güvenlik duvarı kuralları, sertifikalar, geri yüklemeler, günlükler, izleme ve başarısız dağıtımlar için harcanacak zamanı hesaplayın.

Uygun

Kontrol istediğinizde bu yolu seçin

  • Nginx, systemd, SSH, günlükler, dosyalar ve çalışma zamanı sürümleri üzerinde tam kontrol istiyorsunuz.
  • Uygulama, küçük bir VPS’de başlamaya ve daha sonra anlık görüntü veya yeniden yapılandırma ile ölçeklenmeye yeterince mütevazı.
  • Ubuntu güncellemeleri, güvenlik duvarı kuralları, sertifikalar, yedekler, geri yüklemeler ve izlemeyi yönetebilirsiniz.
  • Yönetilen platform kolaylığından çok, öngörülebilir aylık altyapı maliyetlerine ihtiyacınız var.
Uygun değil

Operasyon riskliyse yönetilen barındırmayı seçin

  • Yama, yedekleme, çalışma süresi kontrolleri, disk basıncı veya olay müdahalesi için sahiplik yok.
  • Uygulama, ilk günden itibaren yönetilen ölçeklendirme, yönetilen veritabanları, dağıtım slotları ve platform desteği gerektirir.
  • Teknik olmayan ekip üyeleri Linux’a dokunmadan uygulamayı dağıtıp kurtarabilmeli.
  • Kısa bir kesinti, yönetilen barındırma faturasından daha maliyetli olur.

Kurulum öncesi

Öncelikle alan adı, DNS, SSH, .NET, Nginx ve TLS kararlarını hazırlayın

Başarısız VPS lansmanlarının çoğu Blazor’dan kaynaklanmaz. DNS hazır değil, SSH erişimi belirsiz, portlar engellenmiş, uygulama yolu doğaçlama veya sertifika kurulumu alan adı sunucuya yönelmeden başlamış olabilir.

DNS ön koşulu

TLS’den önce DNS yönlendirin

Certbot’u çalıştırmadan önce son ana bilgisayar adı için A veya AAAA kaydı oluşturun. Sertifika doğrulaması için genel adın doğru çözülmesi gerekir.

SSH erişimi

SSH anahtarları ve dağıtım kullanıcısı kullanın

Anahtara dayalı erişimle başlayın, rutin root yüklemelerinden kaçının ve ilk sürümden önce uygulama dizininin hangi kullanıcıya ait olacağına karar verin.

.NET çalışma zamanı

Yayınlamanın nerede yapılacağını seçin

VPS’ye ASP.NET Core çalışma zamanını kurun. Sunucuda bilinçli olarak derleme veya yayınlama yapmadığınız sürece tam .NET SDK’yı eklemeyin.

Sunucu planı

Uygulama mütevazıysa sadece yaklaşık ₺159/ay sunucusuyla başlayın

En küçük plan bir lansman başlangıç noktasıdır, garanti değil. Düşük ila orta trafik, çoğunlukla Nginx arkasında statik varlıklar, hafif veritabanı kullanımı ve bellek veya CPU baskısı kullanıcı tarafından fark edilmeden önce ölçeklenebilen bir ekip için en iyi çalışır.

Plan referansı yaklaşık ₺159
Şunun için kullanın
Küçük üretim uygulamaları, test ortamları, dahili paneller, gerçek kullanıcılarla prototipler ve düşük trafikli içerik siteleri.
Şunun için kaçının
Bellek yoğun uygulamalar, gürültülü arka plan işleri, büyük yerel veritabanları, yüksek trafik dalgalanmaları veya sunucu bakımına zaman ayıramayan ekipler.
Yükseltme sinyali
Swap kullanımı, CPU doygunluğu, kuyruk gecikmeleri veya yeniden başlatma sıklığı günlüklerde ve kullanıcı zamanlamalarında görünür hale geldiğinde ölçeklendirin.
01

Sunucuyu oluşturun

En yakın uygun bölgeyi, temiz bir Ubuntu imajını, SSH anahtarlarını ve başlatma riskinize uygun en küçük planı seçin.

02

Ağı kilitleyin

SSH, HTTP ve HTTPS’ye izin verin. Veritabanları, paneller ve uygulama portlarını özel tutun, özel bir neden olmadıkça.

03

Temel bir anlık görüntü alın

Sertleştirme sonrası ve ilk üretim dağıtımı öncesinde sunucunun anlık görüntüsünü alın, böylece yeniden kurulumlar daha hızlı ve daha az stresli olur.

04

Yeniden kurulumu belgeleyin

DNS, paket, güvenlik duvarı, uygulama yolu, servis adı ve sertifika adımlarını kısa bir çalışma kitabında tutun.

Sunucu kurulumu

Ubuntu’yu yamalayın, genel yüzeyi küçük tutun ve .NET’i dikkatle kurun

Temiz bir Ubuntu imajından başlayın. Güncellemeleri uygulayın, zaman damgalarını öngörülebilir tutun, sadece ihtiyacınız olan paketleri kurun ve sadece SSH, HTTP ile HTTPS portlarını açın. SDK, çalışma istasyonunuzdan veya CI’dan yayın yaparken sunucuda isteğe bağlıdır.

Temel paketler

Shell
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget unzip apt-transport-https ca-certificates gnupg
sudo timedatectl set-timezone UTC

Güvenlik duvarı ve fail2ban

Shell
sudo apt install -y ufw fail2ban
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo systemctl enable --now fail2ban

.NET paketleri

Shell
wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update
sudo apt install -y aspnetcore-runtime-8.0

Dağıtım akışı

Yerel yayınlayın, öngörülebilir yükleyin ve uygulama sürecini systemd’ye bırakın

Küçük bir sunucu için en güvenli manuel dağıtım basittir: Release çıktısı oluşturun, bilinen bir dizine yükleyin, uygulamayı özel bir kullanıcı olarak çalıştırın ve yeniden başlatma davranışı ile günlüklerden systemd sorumlu olsun.

Yayınla ve yükle

Shell
# Build locally
dotnet publish -c Release -o publish

# Copy to UpCloud (replace user@host)
rsync -avz --delete publish/ user@YOUR_UPCLOUD_IP:/var/www/blazor-app/releases/current/

# On the server, set ownership
sudo useradd -m -s /bin/bash blazorapp || true
sudo chown -R blazorapp:blazorapp /var/www/blazor-app

systemd servisi

systemd
[Unit]
Description=Blazor Server on UpCloud
After=network.target

[Service]
User=blazorapp
WorkingDirectory=/var/www/blazor-app/releases/current
ExecStart=/usr/bin/dotnet /var/www/blazor-app/releases/current/YourApp.dll --urls http://127.0.0.1:5001
Restart=always
RestartSec=5
Environment=ASPNETCORE_URLS=http://127.0.0.1:5001

[Install]
WantedBy=multi-user.target

Nginx ve TLS

Kestrel’i Nginx arkasına koyun ve HTTPS’yi tek genel yol yapın

Kestrel localhost’ta dinlemelidir. Nginx genel trafiği alır, HTTP’yi HTTPS’ye yönlendirir, TLS’yi sonlandırır, orijinal ana bilgisayar ve protokolü iletir ve kullanıcılar ile arama tarayıcıları için URL’yi sabit tutar.

Nginx ters proxy

nginx
server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name app.example.com;

    ssl_certificate     /etc/letsencrypt/live/app.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;

    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

    location / {
        proxy_pass         http://127.0.0.1:5001;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "keep-alive";
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

Certbot komutları

Shell
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d app.example.com --redirect --agree-tos -m [email protected]
sudo certbot renew --dry-run

Operasyonlar

Trafik gelmeden önce bakım planlayarak maliyetleri şeffaf tutun

Aylık VPS faturası öngörülebilir. İşletme maliyeti ise rutin hale getirmediğiniz sürece öngörülemez: yamalar için bakım pencereleri, sertifika yenileme kontrolleri, günlük döndürme, disk uyarıları, anlık görüntüler, geri yükleme testleri ve başarısız sürümler için kısa bir geri alma süreci.

Ubuntu güncellemeleri

Planlı olarak yamalayın

Paket güncellemelerini planlı bir pencere içinde çalıştırın, ardından Blazor servisini, Nginx durumunu ve sertifika yenileme yolunu kontrol edin.

Yedek geri yüklemeleri

Sadece anlık görüntü oluşturmak değil, geri yüklemeyi test edin

Anlık görüntüler ancak bir geri yükleme yaptığınızda faydalıdır. Kurtarma planında uygulama dosyaları, gizli bilgiler ve veritabanı yedeklerini tutun.

Sunucu günlükleri

Sessiz hatalara dikkat edin

Başarısız dağıtımlar veya bot trafiği görünmez kalmasın diye journalctl, Nginx günlükleri, disk uyarıları ve çalışma süresi kontrolleri kullanın.

VPS ölçeklendirme

Kullanıcılar hissetmeden önce ölçeklendirin

Bellek baskısı kesintiye dönüşmeden önce daha büyük plana geçin, servisleri ayırın, CDN ekleyin veya anlık görüntüden klonlayın.

SEO gerçeği

Barındırma, temel unsurlar stabil kaldığında SEO’ya destek olur

Bir VPS kendi başına sıralama oluşturmaz. Size stabil URL’ler, hızlı ilk yanıtlar, doğru HTTPS yönlendirmeleri, temiz meta veriler, uyumlu JSON-LD ve önceden kullandığınız daha ucuz geçici çözüme kıyasla daha az kesinti sunduğunda yardımcı olur.

01

HTTPS yönlendirmeleri

HTTP’yi bir kez yönlendirin, sertifikaları yenilemeye devam edin ve sayfaların bozuk görünmesine neden olan karışık içerik varlıklarından kaçının.

02

Kararlı URL’ler

İnsan tarafından okunabilir rotalar kullanın, canonical URL’leri tutarlı tutun ve her sürüm sonrası değişen dağıtım yollarından kaçının.

03

VPS performansı

TTFB’yi ölçün, Nginx ile statik varlıkları önbelleğe alın, yanıtları sıkıştırın ve ilk sayfa yüklemesini sıkıcı derecede hızlı tutun.

04

SEO meta verileri

Başlık, H1, açıklama, Open Graph görseli, Makale şeması, BreadcrumbList ve FAQPage şemasını görünür içerikle uyumlu tutun.

Otomasyon seçeneği

Manuel kurulumu tekrarlamak riskliyse GhostlyHosting’i kullanın

Manuel kurulum, her parçayı anlamak istediğinizde faydalıdır. Yığını zaten biliyorsanız ve rehberli, tekrarlanabilir bir dağıtım yolu istiyorsanız, GhostlyHosting Ubuntu, Nginx, SSL, GitHub ve servis yönetimi iş akışını otomatikleştirebilir.

Sık sorulan sorular

Blazor Server’ı UpCloud’da yaklaşık ₺159/ay fiyatla barındırabilir miyim?

Evet, dikkatli beklentilerle mütevazı bir uygulama için. Giriş planı küçük bir lansman, test ortamı veya dahili araç için yeterlidir, ancak yine de izleme, yedekleme, yama ve ölçeklendirme planı gerekir.

VPS’de tam .NET SDK’ya ihtiyacım var mı?

Genellikle hayır. Çalışma istasyonunuzdan veya CI’dan yayın yaparken ASP.NET Core runtime’ı kurun. SDK’yı yalnızca sunucu kasıtlı olarak uygulamayı derleyip yayınladığında yükleyin.

Kestrel doğrudan internete açık mı olmalı?

Hayır. Kestrel’i localhost’a bağlayın ve Nginx’i 80 ve 443 portlarında açın. Nginx TLS, yönlendirmeler, proxy başlıkları ve genel URL yüzeyini yönetir.

Ucuz Blazor VPS barındırmanın en büyük riskleri nelerdir?

Yaygın riskler yamalanmamış paketler, süresi dolmuş sertifikalar, zayıf SSH hijyeni, eksik yedekler, disk baskısı, gürültülü günlükler ve servisin tekrar tekrar yeniden başlamasını kimsenin fark etmemesidir.

VPS barındırma Blazor SEO’sunu geliştirir mi?

Sadece kurulum temel iyileştirmeler sağladığında: kararlı HTTPS URL’leri, hızlı yanıtlar, temiz meta veriler, uyumlu JSON-LD, çalışma süresi ve öngörülebilir yönlendirmeler. Sadece barındırma SEO kısayolu değildir.

Bunu elle yapmak yerine ne zaman GhostlyHosting kullanmalıyım?

Yığını öğrenmek veya denetlemek için manuel kurulumu kullanın. Hareketli parçaları anladıktan sonra tekrarlanabilir Ubuntu, Nginx, SSL, GitHub ve servis yönetimi iş akışı için GhostlyHosting’i tercih edin.