Blazor 应用发布部署到 Linux

Blazor 应用的独立部署是指发布后的应用能够在没有安装 .NET 运行时的环境中运行(包含所有依赖的 .NET 运行时和库)。省去了安装.net core,这适用于 Blazor Server 和 Blazor WebAssembly。这样使安装更加简洁

以下是如何将 Blazor 应用以独立部署的方式发布到 Linux 的完整步骤:


1. 配置独立部署

在项目中启用独立部署模式。

Visual Studio 发布

在需要发布的项目上右击弹出菜单选择发布,将应用打包为独立部署,按下面界面设置:

命令行发布

运行以下命令,将应用打包为独立部署:

otnet publish -c Release -r linux-x64 --self-contained true -o ./publish 

参数说明

  • -c Release:以 Release 模式发布。
  • -r linux-x64:指定目标平台为 Linux x64。如果是其他架构,使用对应的运行时标识符(RID),如 linux-arm64
  • --self-contained true:指定独立部署,包含 .NET 运行时。
  • -o ./publish:指定输出目录。

发布完成后,./publish 目录中将包含:

  • 可执行文件(例如:YourApp
  • 所有依赖的动态链接库

2. 上传应用到 Linux 服务器

将发布目录上传到服务器。例如:

使用 SCP

cp -r ./publish user@yourserver:/var/www/blazorapp 

设置权限

hmod -R 755 /var/www/blazorapp 

3. 运行独立部署应用

直接运行

通过 SSH 登录服务器后,进入发布目录运行应用:

cd /var/www/blazorapp 
./YourApp 

默认情况下,Kestrel 监听端口 50005001。可以通过以下地址访问应用:

  • http://yourserverip:5000
  • https://yourserverip:5001

4. 配置为 Systemd 服务

为了确保应用在服务器重启后自动启动,建议配置为 Systemd 服务。

创建服务文件

  1. 编辑服务文件 /etc/systemd/system/blazorapp.service

    udo nano /etc/systemd/system/blazorapp.service 
  2. 添加以下内容:

    [Unit] 
    Description=Blazor App After=network.target 
    [Service] 
    WorkingDirectory=/var/www/blazorapp 
    ExecStart=/var/www/blazorapp/YourApp 
    Restart=always 
    RestartSec=10
    SyslogIdentifier=blazorapp 
    User=www-data 
    Environment=ASPNETCORE_ENVIRONMENT=Production 
    [Install] 
    WantedBy=multi-user.target 
  3. 保存并退出。

启用并启动服务

运行以下命令:

do systemctl daemon-reload 
sudo systemctl start blazorapp 
sudo systemctl enable blazorapp 

5. 使用反向代理(可选)

为了优化生产环境,可以配置反向代理(如 Nginx 或 Apache)。

Nginx 配置示例

编辑 Nginx 配置文件(例如 /etc/nginx/sites-available/default):

server 
{ 
      listen 80; 
      server_name yourdomain.com; 
      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:

udo systemctl restart nginx 

6. 验证运行

通过服务器的 IP 地址或域名访问应用。例如:

  • http://yourdomain.com
  • http://yourserverip

注意事项

  1. 目标平台选择

    • 根据服务器的架构选择正确的运行时标识符(RID),如 linux-x64linux-arm64
    • 可以使用 dotnet --info 查看支持的 RID。
  2. 文件权限: 确保上传后的文件具有适当的执行权限。

  3. 端口安全: 如果直接使用 Kestrel,确保防火墙规则允许所需端口(默认 50005001)。

  4. 资源优化

    • 独立部署的文件较大,适合长期运行的服务。如果应用频繁更新,可以考虑框架相关部署(Framework-dependent Deployment)。

通过上述步骤,你可以将 Blazor 应用独立部署到 Linux,并在没有额外依赖的环境中运行。

《信管通低代码信息管理系统应用平台》就是使用blazor开发的应用系统,可以在linux环境下安装,你可以在你的计算机上安装它,来熟悉blazor安装到Linux环境的操作步骤,下面是百度网盘地址。 

信管通零代码软件开发平台_arm64_版本V13.zip
链接: https://pan.baidu.com/s/1swIXVrx08Ps7MUxQid1Q_Q?pwd=im7v 提取码: im7v 

信管通零代码软件开发平台_x64_版本V13.zip
链接: https://pan.baidu.com/s/1LbaejG-3wlPsMFhqTMZgbg?pwd=851p 提取码: 851p 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值