在 UpCloud Linux 上為小型生產應用部署 Blazor Server
以咖啡價格在 UpCloud Linux 上架設生產級 Blazor Server 應用。本指南著重於穩定 URL、預設 HTTPS、結構化資料及 約 $110/月 VPS 的穩定效能等 SEO 基礎。
您需要 UpCloud 帳號、已啟用 DNS 的網域或子網域,以及 SSH 存取權。以下為完整 Blazor Server 架構:建立 約 $110 計畫、保護 Ubuntu、發佈應用,並使用 Nginx 搭配 Certbot 實現 SEO 友善的 HTTPS。
UpCloud 優惠:您與我們各獲得 $923 點數,月費維持不變。

目錄
開始前的準備事項
網域對 SEO 與 HTTPS 至關重要。搜尋引擎偏好穩定主機名稱,Let's Encrypt 證書也需 DNS。請確保以下項目準備妥當,再建立 UpCloud 伺服器:
- 指向未來伺服器的網域或子網域(如 app.example.com),並設定 A/AAAA 紀錄。
- 擁有 UpCloud 帳號,且在您區域可選擇 約 $110/月的一般用途方案。 查看 UpCloud 價格頁面
- 準備好 SSH 金鑰以免密碼登入;首次啟動後請禁用密碼登入以確保安全。
- 本機安裝 .NET 8 SDK,用於發佈 Blazor Server 應用並上傳至虛擬機。
為何 UpCloud 適合 約 $110/月的 Blazor 部署
UpCloud 入門方案對真實用戶與搜尋爬蟲皆有足夠速度,且計費穩定。以下各點均與 SEO 及正常運作時間息息相關:
- 穩定的 約 $110/月價格與充足頻寬,讓測試與小型生產網站負擔得起。
- NVMe 儲存與全球資料中心降低首次回應時間(TTFB),為強力 SEO 指標。
- 原生 IPv4/IPv6 與浮動 IP 讓藍綠部署簡單,實現無中斷更新。
- 內建防火牆與快照功能,快速復原,避免爬蟲預算因停機受損。
在 UpCloud 建立您的 約 $110/月方案
只需設定一次虛擬機,保持系統簡潔。以下步驟可避免證書發行及後續部署的意外狀況:
- 註冊 UpCloud,完成帳單驗證,並選擇最近資料中心中最小的一般用途實例。
- 選擇 Ubuntu 22.04 或 24.04,附加 SSH 金鑰,若需日後無中斷切換,請新增浮動 IP。
- UpCloud 防火牆僅開放 SSH (22)、HTTP (80) 與 HTTPS (443),其他預設封鎖。
- 部署前先建立快照,若發佈失敗可快速回復。

將 UpCloud 控制台加入書籤,部署失敗時可快速重建,且保留 約 $110/月價格。
偏好 CLI?使用 UpCloud API 或 CLI 腳本自動重建與快照,確保 Blazor 架構可重現。
- 以固定低階虛擬機資源實現可預測成本。
- 透過快照快速復原,無需手動除錯。
- 透過腳本重建實現 Blazor 可重現的基礎架構。
準備 Ubuntu 並強化安全防護
更新基礎系統,設定 UTC 以統一日誌時間,僅安裝必要工具。安全補丁降低攻擊面,並保持 TLS 握手速度足夠快以利爬蟲。
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新增簡易防火牆,僅允許反向代理與 SSH 存取。封鎖其他流量,防止惡意機器人浪費 CPU,維持 SEO 穩定回應時間。
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 8 執行環境與 SDK
使用微軟套件源自動更新安全性。僅在計畫直接於伺服器發佈時安裝 SDK。
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 dotnet-sdk-8.0發佈並上傳您的 Blazor 應用
本機以 Release 模式編譯,伺服器僅執行精簡二進位檔。使用 rsync 保留權限並縮短傳輸時間;SSH 金鑰確保傳輸安全。
# Build locally
dotnet publish -c Release -o publish
# Copy to UpCloud (replace user@host)
rsync -avz publish/ user@YOUR_UPCLOUD_IP:/var/www/blazor-app/
# On the server, set ownership
sudo useradd -m -s /bin/bash blazorapp || true
sudo chown -R blazorapp:blazorapp /var/www/blazor-app在 systemd 管理下執行 Kestrel
將 Kestrel 綁定於 localhost,僅允許 Nginx 存取。systemd 自動重啟服務並集中日誌,方便快速排查 SEO 問題。
透過 Nginx 與 HTTPS 對外提供服務
Nginx 終止 TLS,支援 HTTP/2,並僅將乾淨流量轉發給 Kestrel。Certbot 自動管理 TLS 證書,確保每頁皆可被索引且安全。
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快速啟動 Blazor 的 SEO 清單
- 強制使用 HTTPS 與 HTTP/2,靜態資源嚴格設定快取標頭,並啟用 Brotli 壓縮以減少負載。
- 使用易讀的網址別名與文化區段,保持 URL 一致性,幫助爬蟲避免重複。
- 為每篇指南輸出 JSON-LD(文章 + 常見問題),讓 Google 與 Bing 顯示豐富結果。
- 透過元資料元件加入 Open Graph 與 Twitter 卡片,確保社群媒體預覽正確。
- 監控核心網頁指標,延遲載入主視覺圖片並精簡 JS,降低互動延遲。
監控、擴充並控制成本
- 監控 journalctl 與 Nginx 日誌;部署失敗不應浪費爬蟲預算或顯示過期結構化資料。
- 持續啟用 UFW 白名單與 fail2ban,阻擋暴力破解流量,避免影響真實訪客速度。
- 排程每月快照與異地備份,讓您能快速回復而無需升級方案。
- 流量增加時,可複製快照至更大方案,或在負載平衡器後新增第二節點。
準備擴充?在 UpCloud 上以相同映像啟動另一個 約 $110/月節點,並透過 Nginx 或負載平衡器導流。 開啟 UpCloud 並複製伺服器.