netcore 使用Linux管理工具宝塔面板发布运行

安装

具体方法可以参考宝塔官网,下面仅总结一下要点:

  1. yum安装宝塔面板(6.8版本):
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
  1. 升级宝塔面板:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

使用

默认端口是8888,登陆之前可以通过终端更改面板的用户名和密码:

netcore 使用Linux管理工具宝塔面板发布运行_第1张图片
bt后端设置

之后便可以使用浏览器直接访问面板了,建议登录之后首先更改默认端口以及登录入口。

宝塔面板提供很多功能,包括服务器的监控、网站的一键搭建、FTP服务器的一键搭建、数据库及文件管理,另外还可以运行计划任务,也可以通过面板管理部分软件及运行环境,比如可以安装apache服务器软件、ngnix服务器软件以及php运行环境等,是一款很不错的Linux管理面板,并且该软件还有Windows Server版本。

.NetCore SDK的安装

由于宝塔面板中没有集成.NetCore SDK,所以我们只能通过yum在终端手动安装。

各个不同Linux发行版的安装方法大同小异,在这个官方页面均有详细介绍,这里我用的是CentOS,所以使用yum安装。

  1. 根据官方的说法,在安装DotNetCore环境之前需要注册Microsoft Key以及Product Repository,并且还需要安装一些依赖,这一步每台机器只需要运行一次,具体命令如下:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
  1. 安装dotnet-sdk-2.2:
~$ sudo yum update

~$ sudo yum install dotnet-sdk-2.2
  1. 测试是否安装成功:
// 直接看版本:
~$ dotnet --version

// 使用yum查看info
~$ yum info dotnet-sdk-2.2

本地新建.NetCore WebApi项目

虽然在服务器上安装了.NetCore SDK,也可以用命令行直接在服务器上新建项目,但是鉴于Visual Studio强大的功能,我们选择在本地构建应用,然后部署到服务器即可。下面就编写一个简易的WebApi,注意新建项目的时候不要选择“为HTTPS配置”,因为服务器上的ngnix并没有启用https。

新建一个UsersController,代码编写如下:

[Route("api/[controller]")]
[ApiController]
public class UsersController : ControllerBase
{
    [HttpGet]
    public ActionResult> Get()
    {
        return SysUser.Users;
    }
}

public class SysUser
{
    public int Id { get; set; }

    public string Name { get; set; }

    public string Password { get; set; }

    public string Description { get; set; }

    public static List Users = new List()
    {
        new SysUser()
        {
            Id=1,
            Name="张三",
            Password="Not Set",
            Description="我是张三"
        },
        new SysUser()
        {
            Id=2,
            Name="李四",
            Password="Not Set",
            Description="我是李四"
        }
    };
}

正如你所见,我们的WebApi只能使用Http的Get方法获取地址api/users的数据,后台会返回一个SysUser数组,这是我们预期的结果。

[
    {
        "id":1,
        "name":"张三",
        "password":"Not Set",
        "description":"我是张三"
    },
    {
        "id":2,
        "name":"李四",
        "password":"Not Set",
        "description":"我是李四"
    }
]

接着先将服务部署到本地文件系统上面,之后打成压缩包然后通过宝塔面板上传至服务器并解压。

在Linux上面运行项目

在服务器上进入部署文件所在目录,然后使用dotnet命令启动服务:

netcore 使用Linux管理工具宝塔面板发布运行_第2张图片
启动.NetCore应用

但是现在我们还不能直接访问到我们新部署的WebApi服务,需要使用ngnix设置反向代理,将特定的端口代理到http://localhost:5000,这一步可以通过宝塔面板来完成,步骤如下:

  1. 在宝塔面板上新建一个网站,设置为静态网站即可,如果当前宝塔面板已经有多个项目,注意设置好端口即可,这里我设置成了81端口。
  2. 在刚才新建的网站中设置反向代理,目标URL填写http://localhost:5000即可,发送域名留空。

现在可以直接在浏览器中使用url访问刚才部署的url服务,如下图:

netcore 使用Linux管理工具宝塔面板发布运行_第3张图片
查看结果

但是现在还有个问题,就是当我们关闭xShell等ssh工具的时候服务进程也会停止运行,下面就说说解决方法。

解决关闭Shell之后进程停止的问题

这个问题可以通过yum安装screen解决:

~$ yum install screen

screen的原理大概是新建一个终端进程,然后其他运行的任务可以附加到新建的这个进程运行,这样退出shell的时候我们的webapi服务便不会终止运行了。

下面是几个常用的screen命令:

  1. 新建一个screen(这里取名为box):
~$ screen -S box
  1. 查看当前存在的screen列表(这个命令会输出存在的所有screen实例的进程pid以及名称):
~$ screen -ls
  1. 关闭一个screen(关闭其对应的进程即可,以pid=1086为例):
~$ kill 1086

原文链接https://microbubu.github.io/2019/01/25/%E5%9C%A8Linux%E4%B8%8A%E9%83%A8%E7%BD%B2-NetCore%E9%A1%B9%E7%9B%AE/

你可能感兴趣的:(netcore 使用Linux管理工具宝塔面板发布运行)