Linux部署.Net Core Web项目

本文主要记录我在Linux(Ubuntu)上部署.net core 的操作记录,也便于以后部署。
如对您有所帮助,不胜荣幸~


前言

本文主要介绍如何将windows上开发的 dotnet core web 应用程序部署到 Linux服务器上(Ubuntu 22.04)。

本人所使用的软件版本如下:

  • 操作系统版本:Ubuntu 22.04
  • web 项目版本:.net 6.0

本人在windows端部署的网站如下。端口:5001。本文目标就是将其部署到Ubuntu上去。
在这里插入图片描述


一、准备工作

1. 版本信息

  • 操作系统版本:Ubuntu 22.04
  • web 项目版本:.net 6.0

2. windows端web项目

二、操作步骤

1. Linux 配置 .net 运行环境

众所周知,所有 .net 项目的运行都需要 .net 运行环境。
.net 运行环境分两种:sdk 和 runtime(运行时) 。

  • sdk:sdk包含runtime,同时可以为.net 开发人员提供.net 项目的运行编译打包环境。
  • runtime:runtime 是sdk的一个子集,仅仅可以使得.net程序在操作系统上运行。

如果无需在Linux上做.net开发,可以只安装runtime,我这里主要演示sdk的安装。

微软官方参考文档:
在 Ubuntu 上安装 .NET SDK 或 .NET 运行时
使用安装脚本或通过提取二进制文件在 Linux 上安装 .NET

1.1 查看最新 .net 运行环境的下载路径

前往 .net 官方下载地址 ,页面内容打开如下图所示:
在这里插入图片描述
我们选择上图中的.NET 6.0,进入下图页面,选择合适自己操作系统架构的 SDK 地址。
在这里插入图片描述

ubuntu 查看系统架构的命令如下:

dpkg --print-architecture

在这里插入图片描述
我的是amd64,选择x64。
在这里插入图片描述

点击【copy】按钮复制得到下载地址:
https://download.visualstudio.microsoft.com/download/pr/868b2f38-62ca-4fd8-93ea-e640cf4d2c5b/1e615b6044c0cf99806b8f6e19c97e03/dotnet-sdk-6.0.407-linux-x64.tar.gz

1.2 安装 dotnet SDK

1.2.1 下载安装包

我们使用wget命令下载复制得到的runtime安装包

wget https://download.visualstudio.microsoft.com/download/pr/868b2f38-62ca-4fd8-93ea-e640cf4d2c5b/1e615b6044c0cf99806b8f6e19c97e03/dotnet-sdk-6.0.407-linux-x64.tar.gz

在这里插入图片描述

1.2.2 解压安装包

在当前主目录下创建.dotnet 文件夹

mkdir -p .dotnet

在这里插入图片描述
创建成功:
文件夹选项,设置显示隐藏文件后可以见到.dotnet文件夹:
在这里插入图片描述
将安装包内的文件解压到.dotnet 文件夹中

tar -zxvf dotnet-sdk-6.0.407-linux-x64.tar.gz -C .dotnet

在这里插入图片描述
解压成功。
在这里插入图片描述

1.2.3 设置环境变量

要使环境变量对所有用户有效,需要修改profile文件:

sudo vim /etc/profile 

在这里插入图片描述
键入[i],插入以下语句:

export DOTNET_ROOT=$(pwd)/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

在这里插入图片描述
再键入[Esc],退出编辑模式。
键入[:wq]保存并退出Vim。
注销或者重启就可以生效。

1.3 验证

重启后,通过dotnet --info 命令查看dotnet信息。
在这里插入图片描述
设置完成。

SDK 安装成功。

2. windows 端 web 项目发布选项设置

Visual Studio 中 web 项目的发布选项需要将 TargetRuntime 改成 Linux版本,选择适合自己的Linux架构版本,前文中已经讲过如何查看自己Linux的架构了。本人的amd64,选择x64。
在这里插入图片描述
Deployment Mode(部署方式) :

  • Self-contained (独立应用) 自带dotnet运行时,可以部署至一台空白环境服务器,无需提前安装配置dotnet运行时。缺点是:部署包较大。
  • Framework-dependent(框架依赖型) 生成跨平台的部署包,用户需要在Linux上安装相应版本的运行时。

我之前已经安装好.net 6.0 SDK,包含了运行时,所以这里我选择Framework-dependent。

3. 将web发布文件从windows上传到LInux

设置成功后,选择发布,将web应用程序发布到文件夹。
发布成功后,使用ftp将web发布文件从windows上传到Linux上。
PS:本人在Linux上的web发布项目为:/home/qyh/workspace/WebPublishFolder/WowCrtAdvrts
在这里插入图片描述

上传成功:
在这里插入图片描述
上图中程序入口就是:Jcjy.Web(你的web项目名称)

4. Linux 运行 web 项目

控制台进入.net web项目路径:

cd ~/workspace/WebPublishFolder/WowCrtAdvrts

在这里插入图片描述
运行web项目:

dotnet Jcjy.Web.dll

浏览器输入ip+端口号,如下图所示。部署成功。
在这里插入图片描述
到目前为止Linux上部署.Net Core Web已经讲完了。接下来我主要讲下如何利用Nginx做反向代理。

5. 设置 web 项目 开机自启

supervisor是python开发的通用进程管理程序,可以将普通的命令行进程变成后台守护进程,监控进程状态,当进程异常退出时可自动重启。

5.1 安装supervisor

sudo apt-get install supervisor

在这里插入图片描述
如图所示,安装完成。

5.2 在supervisor中为.net web 项目添加配置信息

5.2.1 创建.net web项目的日志输出文件夹

我们先把web项目的日志输出文件夹创建好,这里我准备将日志放到这个目录下:/var/log/web/dotnet/

sudo mkdir -p /var/log/web/dotnet
5.2.2 进入/etc/supervisor/conf.d

supervisor安装好之后,在/etc/下会有一个supervisor文件夹,conf.d就是存放supervisor的配置文件的文件夹。

cd /etc/supervisor/conf.d

在这里插入图片描述

5.2.3 新建config文件

我们为.net web 项目创建配置文件:

sudo touch WowCrtAdvrts.conf

这里的【WowCrtAdvrts】是你的web 项目名称,

在这里插入图片描述

5.2.4 添加开机自启等配置项

编辑 WowCrtAdvrts.conf 文件

sudo vi WowCrtAdvrts.conf
i

在这里插入图片描述
输入一下配置项:

[program:WowCrtAdvrts]
command=dotnet Jcjy.Web.dll
directory=/home/qyh/workspace/WebPublishFolder/WowCrtAdvrts/
environment=ASPNETCORE__ENVIRONMENT=Production 
user=root  
stopsignal=INT
autostart=true 
autorestart=true 
startsecs=1 
stderr_logfile=/var/log/web/dotnet/WowCrtAdvrts.err.log 
stdout_logfile=/var/log/web/dotnet/WowCrtAdvrts.out.log 

directory就是我们的.net core web项目所在目录;
stderr_logfile是错误日志所在路径,stdout_logfile是输出日志所在路径,我统一放在了/var/log/web/dotnet/下面;
在这里插入图片描述
然后输入ESC->:wq保存退出即可。
在这里插入图片描述
修改完成。

5.2.5 重启supervisor
sudo service supervisor stop 
sudo service supervisor start

在这里插入图片描述

5.2.6 查看supervisor服务是否正常运行
sudo supervisorctl
5.3.5 为supervisor开启可视化web站点管理界面(可选操作)

supervisor自带了可视化管理界面,需要我们做一下配置就能开启。
在/etc/supervisor 目录下,打开supervisor.conf 文件

cd /etc/supervisor
sudo vi supervisor.conf
i

在这里插入图片描述

添加如下配置项

[inet_http_server]    
port=127.0.0.1:8001     
username=admin
password=123456

在这里插入图片描述

保存修改并退出

ESC
:wq

重启supervisor

sudo service supervisor stop 
sudo service supervisor start

总结

以上就是今天要讲的内容,总的来说还是很简单的,但是我在具体操作时参考网上教程还是踩了一些坑。本文如对您有所帮助,不胜荣幸~

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux部署 .NET 应用程序需要使用 .NET Core,以下是详细步骤: 1. 安装 .NET Core 运行时和 SDK 在 Linux部署 .NET 应用程序需要安装 .NET Core 运行时和 SDK。可以从官网下载适合自己操作系统的版本:https://dotnet.microsoft.com/download 2. 编写 .NET 应用程序 使用 .NET Core SDK 编写 .NET 应用程序,可以使用 Visual Studio Code 或者其他文本编辑器。 3. 编译 .NET 应用程序 使用 .NET Core SDK 编译 .NET 应用程序,可以使用以下命令: ``` dotnet build ``` 4. 发布 .NET 应用程序 使用 .NET Core SDK 发布 .NET 应用程序,可以使用以下命令: ``` dotnet publish -c Release -o /app/publish ``` 其中,`-c` 参数指定编译模式,`-o` 参数指定发布目录。 5. 安装和配置 Web 服务器 在 Linux部署 .NET 应用程序需要安装和配置 Web 服务器,可以使用 nginx 或者 Apache。 6. 配置 Web 服务器 在 Web 服务器上配置反向代理,将请求转发到 .NET 应用程序。以下是 nginx 的配置示例: ``` server { listen 80; server_name example.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; } } ``` 其中,`proxy_pass` 指定 .NET 应用程序的地址。 7. 启动 .NET 应用程序 使用以下命令启动 .NET 应用程序: ``` dotnet /app/publish/YourApplication.dll ``` 其中,`YourApplication.dll` 是应用程序的入口文件。 以上是在 Linux部署 .NET 应用程序的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

切糕师学AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值