我是靠谱客的博主 无心小懒虫,最近开发中收集的这篇文章主要介绍在Linux上使用Supervisor管理多个Asp .Net Core应用进程前言一、Supervisor是什么?二、使用步骤三、Supervisor相关命令四、配置 Asp .Net Core 应用五 相关链接,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 前言
  • 一、Supervisor是什么?
  • 二、使用步骤
    • 1 安装Supervisor
    • 1.1 启用Superviosr Web界面
    • 2 安装Asp .Net Core环境
      • 2.1 Asp环境安装失败解决办法
  • 三、Supervisor相关命令
  • 四、配置 Asp .Net Core 应用
    • 4.1 创建 Asp .Net core Web API 应用
    • 4.2 修改Kestrel监听
    • 4.3 增加Controller与Action
    • 4.4 发布为Linux可用应用
    • 4.5 上传到Linux服务器上
    • 4.6 配置Supervisord中进程Conf
    • 4.7 重新启动Supervisor服务并查看是否成功
    • 4.8 管理多个应用
  • 五 相关链接
    • 下一篇


前言

因为比较穷所以手上就两台服务器
其中正好有一台轻量,拿来部署一些自己的WebAPI服务,但使用Linux来启动运行似乎管理多个比较困难,也有想过使用screen或者docker进行多个管理,但最后比较下选择了Supervisor。

文章会详细讲述安装Supervisor并管理Asp应用的步骤。

Linux系统以CentOS 8为例,使用VMware搭建,开启桥接模式可用22端口本地SSH连接,ip为192.168.1.107

一、Supervisor是什么?

Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类unix的机器上,supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

官方文档:http://supervisord.org/

二、使用步骤

1 安装Supervisor

yum install supervisor -y #安装
systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动supervisord服务

若找不到supervisor包请尝试安装epel并更新yum

yum install epel-release -y
yum update

1.1 启用Superviosr Web界面

在安装supervisor后,寻找到etc/supervisord.conf
将以下行前面的;注释删除

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123               ; (default is no password (open server))

更新配置并重启supervisor

supervisorctl update
systemctl restart supervisord

注:默认端口是9001,为了方便测试直接关闭了CentOS 8的firewalld服务

systemctl stop firewalld

Web界面

2 安装Asp .Net Core环境

Microsoft Docs链接:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux

代码如下:

sudo dnf install aspnetcore-runtime-5.0

2.1 Asp环境安装失败解决办法

  1. 检查CentOS版本,已知部分.Net Core环境最低支持CentOS 7

三、Supervisor相关命令

supervisorctl status
supervisorctl start
supervisorctl stop (all)
supervisorctl restart

四、配置 Asp .Net Core 应用

4.1 创建 Asp .Net core Web API 应用

创建一个最简单的.Net5 Web API项目
没有描述!

4.2 修改Kestrel监听

修改Kestrel监听有多种办法,在这里我们选择修改CreateHostBuilder方法
修改端口

4.3 增加Controller与Action

在项目中增加了 ValuesControllerGet方法
Route使用了 api/values
即访问 url/api/values 使用

采用了 [HttpGet]Get() 方法会在Get访问 url/api/values 执行并返回 Test OK!
一个Get

4.4 发布为Linux可用应用

使用文件发布,目标运行时采用Linux-x64或者可移植都可以
目标运行时

文件发布

4.5 上传到Linux服务器上

我们在root下创建如下路径
路径
并上传刚刚生成的所有文件
上传

4.6 配置Supervisord中进程Conf

先在etc/supervisord.conf结尾查看进程配置文件相关的位置与文件名
文件类型
于是我们在 etc/supervisord.d文件夹下新建 repeat-api.ini
并编写简易的配置

[program:Repeat-API] ;程序名称
command=dotnet RepeatAPI.dll ;运行程序的命令
directory=/root/apps/repeat-api/ ;命令执行目录
autorestart=true ;自动重启
stderr_logfile=/var/log/Repeat-API.err.log ; 错误日志文件
stdout_logfile=/var/log/Repeat-API.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
startsecs=10 ;自动重启时间间隔

environment 也可以填写 Development

4.7 重新启动Supervisor服务并查看是否成功

systemctl restart supervisord

进入Web页面查看
Repeat-API (配置时ini内第一行填的名字) 属于running状态
进入Web界面
访问8888端口的api地址
url
成功返回
在这里插入图片描述
现在关于部署一个应用到此为止。

4.8 管理多个应用

在 apps下建立多个文件夹,上传多个文件发布的Linux运行环境Asp .Net Core 应用文件
建立多个类似的Supervisor 进程 Conf
重启Supervisor服务
在Web面板上更快速的管理,操作,发布。

五 相关链接

Supervisor官方文档

Microsoft Docs关于Linux安装.Net环境的文档

Microsoft Docs关于Kestrel的描述

Microsoft Docs如何使用Kestrel反向代理

在Microsoft Docs上有超级多有帮助但是好难理解的文档,非常建议大火看看hhh

下一篇

使用Nginx反向代理解决访问端口太多的问题

最后

以上就是无心小懒虫为你收集整理的在Linux上使用Supervisor管理多个Asp .Net Core应用进程前言一、Supervisor是什么?二、使用步骤三、Supervisor相关命令四、配置 Asp .Net Core 应用五 相关链接的全部内容,希望文章能够帮你解决在Linux上使用Supervisor管理多个Asp .Net Core应用进程前言一、Supervisor是什么?二、使用步骤三、Supervisor相关命令四、配置 Asp .Net Core 应用五 相关链接所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部