在 Ubuntu 24.04 上部署 .NET 8 Blazor Web App 的步驟如下:
1. 準備 Ubuntu 服務器
確保你的 Ubuntu 24.04 服務器已更新並安裝所需的基礎工具:
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl unzip
2. 安裝 .NET 8 SDK 或運行時
添加 Microsoft 存儲庫:
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
sudo apt update
安裝 .NET 運行時
sudo apt install -y aspnetcore-runtime-8.0
確認安裝:
dotnet --info
3. 安装和配置 Nginx
-
安装 Nginx
sudo apt install -y nginx
-
準備應用格局
创建目錄,且设置所需的拆分許權:
sudo mkdir -p /var/www/BlazorWebApp
sudo chown -R www-data:www-data /var/www/BlazorWebApp
sudo chmod -R 755 /var/www/BlazorWebApp
-
定義服務配置
作為一個系統服務,你需要設定一份 .service 檔案:
sudo nano /etc/systemd/system/blazorwebapp.service
将以下內容貼入文件:
[Unit]
Description=Blazor Web App
After=network.target
[Service]
WorkingDirectory=/var/www/BlazorWebApp
ExecStart=/usr/bin/dotnet /var/www/BlazorWebApp/BlazorWebApp.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=blazorwebapp
User=www-data
Environment=DOTNET_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
保存並關閉文件後,使用下列指令添加到系統:
sudo systemctl daemon-reload
sudo systemctl enable blazorwebapp
sudo systemctl start blazorwebapp
-
配置 Nginx 作為代理
在 Nginx 的配置文件中設定一個新的站點:
sudo nano /etc/nginx/sites-available/blazorwebapp
将下列內容貼入文件:
server {
listen 80 default_server;
server_name _;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
保存並關閉,將配置付注入 Nginx:
sudo ln -s /etc/nginx/sites-available/blazorwebapp /etc/nginx/sites-enabled/
sudo systemctl restart nginx
注意:如果有衝突比如
Nginx 中 "conflicting server name "_" on 0.0.0.0:80, ignored" 警告
執行
sudo rm /etc/nginx/sites-enabled/default
把默認NginX的頁面刪掉。
上面[将下列內容貼入文件]中的default_server是我後來加上的。
現在,你的 Blazor Web App 已經正常部署!重新加載服務器之後,你可以在瀏覽器中探索你的應用。