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.
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.
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.
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.
İçindekiler
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.
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 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.
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.
- Ş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.
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.
Ağı kilitleyin
SSH, HTTP ve HTTPS’ye izin verin. Veritabanları, paneller ve uygulama portlarını özel tutun, özel bir neden olmadıkça.
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.
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
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget unzip apt-transport-https ca-certificates gnupg
sudo timedatectl set-timezone UTCGüvenlik duvarı ve fail2ban
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
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.0Dağı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
# 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-appsystemd servisi
[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.targetNginx 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
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ı
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-runOperasyonlar
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.
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.
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.
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.
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.
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.
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.
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.
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.