Linux 下的.Net Core web 以及webapi 项目的部署和持续运行

系统:centos 7.1  Net Core 版本:2.1 (3.x同理)

1.注册产品存储库并安装所需的依赖关系

在安装.NET之前,需要注册产品存储库并安装所需的依赖关系。运行一次就行。

打开ssh终端 运行以下命令:

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

2.更新可用于安装的产品

更新可用于安装的产品,然后安装.NET SDK。这样做的好处就是可以保证你的各个组件都是最新的版本,对新手来说可以解决很多不必要的麻烦。

sudo yum update 

3.安装.NET SDK

运行以下命令:

sudo yum install dotnet-sdk-2.1

4.ssh进入刚刚的路径

上传你的net core 运行文件到服务器:如web项目发布至自定义目录下:/www/wwwroot/web/

cd /www/wwwroot/web/  #路径记得自己改

5.运行你的项目

很简单这样就跑起来了,如果你的程序没有写错的话。建议第一次部署体验直接用vs 生成的默认项目。

dotnet web.dll

当你觉得到此为止的时候,剧情总会出现反转。

以上的操作都是正确的。

但是你的项目只在你的ssh终端没有被关闭的情况下

或者说当前dotnet 进程没有结束的情况下会保持运行状态。

简单的说就是,你的ssh终端一旦关闭。你的web 也就随之关闭了。

因此你需要第六步来保证你的web一直运行。

6.1 持续运行:

这个时候你就需要一个持续运行的方法 :nohup  该命令的详细介绍:https://www.cnblogs.com/apexchu/p/4193611.html

1 nohup dotnet web.dll &

6.2 进程守护:

第二个就是采用三方工具进行进程守护的方式(个人觉得这个东西用起来还是有点麻烦,没有nohup便捷)

就不介绍了直接让前辈来吧:https://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html

7.域名访问的问题

dotnet 似乎没有为我们提供域名绑定的工艺。因此要用反向代理来绑定域名

 Nginx 似乎成为了首选。简单轻便。这里也直接贴上前辈的介绍好了:https://cloud.tencent.com/developer/article/1503591

还有一个办法是直接安装宝塔面板,用宝塔面板来配置 (毕竟有GUI 对用户的友好程度++)宝塔官方介绍:https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=18019&highlight=nginx

8.最后

最后如果你按照以上步骤操作了一遍发现没用,那可能是哪个步骤出现了错误。这个时候可以考虑使用卸载的办法,对sdk重新进行安装。

对,就是回到最初的起点,再来一次。

如果你觉得对你有帮助的话,不妨点个【推荐】。

sudo yum remove dotnet-sdk-2.1
sudo yum remove libunwind libicu
sudo yum remove /etc/yum.repos.d/dotnetdev.repo

第二个就是采用三方工具进行进程守护的方式(个人觉得这个东西用起来还是有点麻烦,没有nohup便捷)

猜你喜欢

转载自www.cnblogs.com/anilybin/p/12667801.html
今日推荐