在Linux上使用Supervisor管理多个Asp .Net Core应用进程


前言

因为比较穷所以手上就两台服务器
其中正好有一台轻量,拿来部署一些自己的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反向代理解决访问端口太多的问题

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Linux Supervisor,你可以按照以下步骤进行配置和操作: 1. 安装Supervisor使用适合你Linux发行版的软件包管理器(如apt、yum等)安装Supervisor。例如,在Ubuntu上,可以使用以下命令进行安装: ```shell sudo apt-get install supervisor ``` 2. 配置SupervisorSupervisor的配置文件位于`/etc/supervisor/conf.d/`目录下。你可以在该目录中创建一个以`.conf`为后缀的配置文件来配置你想要监控的进程。例如,创建一个名为`myapp.conf`的配置文件: ```shell sudo nano /etc/supervisor/conf.d/myapp.conf ``` 在配置文件中,你需要指定进程的命令、运行参数、工作目录等信息。以下是一个示例配置文件的内容: ``` [program:myapp] command=/path/to/myapp directory=/path/to/myapp/directory autostart=true autorestart=true user=myuser ``` 3. 更新配置:保存并关闭配置文件后,使用以下命令更新Supervisor的配置: ```shell sudo supervisorctl reread sudo supervisorctl update ``` 4. 操作进程使用`supervisorctl`命令来管理和监控进程。例如,启动进程: ```shell sudo supervisorctl start myapp ``` 停止进程: ```shell sudo supervisorctl stop myapp ``` 重启进程: ```shell sudo supervisorctl restart myapp ``` 查看进程状态: ```shell sudo supervisorctl status ``` 这些是基本的Supervisor使用步骤。你可以根据自己的需求进行进一步的配置和操作,例如设置日志、限制进程资源等。请确保在使用Supervisor之前,你已经了解和熟悉相关的配置选项和命令。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值