EKsumic's Blog

let today = new Beginning();

Click the left button to use the catalog.

OR

在 Ubuntu 24.04 上部署 .NET 8 Blazor Web App

在 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

  1. 安装 Nginx

sudo apt install -y nginx
  1. 準備應用格局

创建目錄,且设置所需的拆分許權:

sudo mkdir -p /var/www/BlazorWebApp
sudo chown -R www-data:www-data /var/www/BlazorWebApp
sudo chmod -R 755 /var/www/BlazorWebApp
  1. 定義服務配置

作為一個系統服務,你需要設定一份 .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
  1. 配置 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 已經正常部署!重新加載服務器之後,你可以在瀏覽器中探索你的應用。

This article was last edited at 2025-01-21 17:47:02

* *