.net core 3.1 部署在linux centos 8上, 并使用nginx代理

一  程序准备

1.1 将程序发布到linux上, 可以通过复制文件, ftp等方法, 这里不赘述. 需要注意的是在发布的时候需要修改以下几个参数

 二 linux 上安装环境, 并执行

2.1. 将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库, 命令: 

sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm

2.2.  安装.net SDK, 命令:

 sudo yum install dotnet-sdk-3.1

 2.3. 安装.net runtime, 命令: 

sudo yum install dotnet-runtime-3.1

 2.4. 进入我们放程序的位置, 然后后台启动程序 ,  可以指定端口号, 执行完成后会返回这个进程的pid, 命令:

nohup dotnet XXXX.dll --urls="http://*:8081;" > /dev/null 2>&1 &

启动后可以再次查看进程的状态, 命令:

ps -aux | grep "xxxx.dll"

 2.5. 浏览器里检查效果, 这个时候需要确保服务器对应的端口是可以访问的. 结束后可以用kill命令关闭进程

附加A, 使用nginx 代理

1. 配置nginx文件

2. 重启nginx服务器, 命令:

systemctl restart nginx

3. 检查效果

附加B

在2.4步骤的时候, 网上的很多教程没有使用 nohup 命令而是直接启动, 这样会导致关闭终端就直接关闭了进程. 

在linux中,每个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。

 使用nohup开启后台进程虽然可以在终端关闭后还能运行,但是当系统关机重启后,进程就没有了,这个时候还是需要手动启动,这个时候需要用到守护进程(Daemon)

参考文献

微软官方文档: https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos#centos-8-

菜鸟: https://www.runoob.com/linux/linux-comm-nohup.html

博客: https://www.cnblogs.com/jayjiang/p/12610545.html

原文地址:https://www.cnblogs.com/fancyblogs/p/14081448.html