前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Asp.NetCore轻松学-使用Supervisor进行托管部署

Asp.NetCore轻松学-使用Supervisor进行托管部署

作者头像
梁规晓
发布2019-04-11 11:09:01
6490
发布2019-04-11 11:09:01
举报
文章被收录于专栏:DotNet程序园

前言

上一篇文章 Asp.NetCore轻松学-部署到 Linux 进行托管 介绍了如何在 Centos 上部署自托管的 .NET Core 应用程序,接下来的内容就是介绍如何使用第三方任务管理程序来托管 .NET Core 应用程序,这里以笔者常用的 Supervisor 为例子,从安装环境开始,一步一步的进入 Linux 的世界,部署程序还是以上一篇的项目文件 Deploy.Linux 为基础。

1. 安装前置条件

Centos 和 ubuntu 下,安装 supervisor 的步骤有所不同,在 Centos 下,需要先添加 Centos 下的扩展包源,

1.1 安装 Centos 扩展源
代码语言:javascript
复制
sudo yum install epel-release
1.2. 安装 supervisor
代码语言:javascript
复制
sudo yum install supervisor
  • ubuntu 下使用 apt-get install supervisor 进行安装
1.3 supervisor 安装完成
  • 输入supervisord --version 查看安装已完成,

注意是 supervisord 后面多了一个字符:d,因为安装的服务名称是:supervisord.service,通过命令查看服务文件可知道

代码语言:javascript
复制
cat /usr/lib/systemd/system/supervisord.service  
1.4 设置 supervisor 开机启动
代码语言:javascript
复制
sudo systemctl enable supervisordsudo systemctl start supervisord
1.5 进入 supervisor 控制台执行命令
代码语言:javascript
复制
sudo supervisorctl

进入 supervisor 控制台,表示服务安装成功,并已成功启动

2. 创建 supervisor 托管的 .NET Core 的服务配置文件

2.1 查看配置文件目录

通过查看 cat /etc/supervisord.conf 看到 supervisor 引入配置文件的指定目录为

代码语言:javascript
复制
[include]files = supervisord.d/*.ini

可以看到,默认的托管服务配置文件目录在 supervisord.d/ 下面,这个目录的完整地址是 /etc/supervisord.d/

2.2 建立配置文件 demo.ini

关于 supervisor 配置文件的含义,这里不做过多的解释,可移步官网查看帮助文档:http://www.supervisord.org/configuration.html,我们在这里只做一个最简单的配置文件,刚好够启动 .NET Core 应用程序即可

代码语言:javascript
复制
[program:demo]command=/usr/bin/dotnet  Deploy.Linux.dll ; 输入执行命令,这里表示 dotnet  Deploy.Linux.dlldirectory=/data/sites/demo/publish ; 应用程序根目录 autostart=true ; 是否自动启动,当 supervisor 加载该配置文件的时候立即启动它 autorestart=true ; 是否自动重启,当执行 dotnet  Deploy.Linux.dll 启动失败时,会重复的自动重启 logfile_maxbytes=50MB ; 该配置文件输出单个日志文件的大小 logfile_backups=10 ; 日志备份个数 loglevel=info ; 记录日志级别 stderr_logfile=/data/logs/demo/demo.err.log ; 指定标准错误输出日志文件 stdout_logfile=/data/logs/demo/demo.out.log ; 指定标准输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 可配置环境变量,该环境变量将通过执行 dotnet  Deploy.Linux.dll 命令的时候传入到 .NET Core 应用程序中  user=root ;启动服务的用户  stopsignal=INTredirect_stderr=true
  • 上面包含了几个关键的参数,都在注释中了,接下来建立日志目录,否则服务启动出错,输入命令
2.3 创建日志文件目录
代码语言:javascript
复制
sudo mkdir -p /data/logs/demo
2.4 重启 supervisor 服务,并进入 supervisorctl
代码语言:javascript
复制
sudo systemctl restart supervisordsudo supervisorctl
2.5 查看服务状态

输入站点地址:http://139.219.9.102/ 查看服务已正常启动

2.6 查看日志输出

查看日志输出,定位到目录 /data/logs/demo 查看日志文件内容正常

结束语

本文从零开始介绍如何使用 Supervisor,一步一步的从安装环境到编写托管服务文件,设置执行文件、执行文件目录、日志输出配置等细节,最终成功将 .NET Core 应用程序托管到了 Supervisor 中,文中都是通过命令形式进行安装部署,对于接触 Linux 比较少的同学来说,可能有些不适应,不过不要紧,这些都是很基础的命令,我们呢,就是要多学多用,达到熟悉和强化记忆,然后平滑过渡到 Linux 平台。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet程序园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1. 安装前置条件
  • 2. 创建 supervisor 托管的 .NET Core 的服务配置文件
  • 结束语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档