工具:

WinSCP+Xshell+VMware

1.安装CentOS

省略安装过程...

2. 安装.Net Core Sdk

①更新可用的安装包:sudo yum update

②安装.NET需要的组件,libunwind和libicu库:sudo yum install libunwind libicu

③安装.NET SDK(ps:我的开发环境是2.2.300,cmd:dotnet –version查看):

sudo yun install dotnet-sdk-2.2

④安装完成之后,检测是否安装成功

dotnet --version

3.使用Visual Studio 2019发布WebApi应用程序

4.部署应用程序至CentOS服务器

这里使用WinSCP工具操作。

将发布程序拖到想的任一文件夹下

5.运行发布程序

进入部署对应的文件下面运行对应dll,就可以正常run起来。

6.配置守护进程Supervisor

上面的操作已经能正常将.NET Core程序发布到CentOS下来, 但是发布过程中我们也发现了问题, 就是.NET Core不能自动的运行, 一旦我们的命令行工具关掉, 发布的程序就不能访问了;

Supervisor 是用Python开发的Linux/Unix系统下的一个进程管理工具。它可以使进程(类似Windows Service)脱离终端,变为后台守护进程(daemon)。能实时监控进程状态,异常退出时能自动重启。

6.1.安装Supervisor

yum install python-setuptools

easy_install supervisor

6.2.配置Supervisor

①运行supervisord 服务的时候,需要指定 Supervisor 配置文件,所以,先通过如下命令创建目录,以便让 supervisor 成功加载默认配置:

mkdir /etc/supervisor

②初始化配置文件:

echo_supervisord_conf > /etc/supervisor/supervisord.conf

③修改supervisord.conf配置信息:

vi /etc/supervisor/supervisord.conf

④最下边找到如下文本片段:

修改为:

注意:文件存放的目录,最好写明从根目录开始。

该操作的目的是我们创建一个supervisor 进程配置文件加载目录。让supervisor自动加载该目录下 .ini 后缀的文件作为服务配置

6.3为我们部署的.NET Core添加进程配置文件

①在/etc/supervisor/目录下创建一个文件夹conf.d: mkdir /etc/supervisor/conf.d

②在此文件加下创建uiorderapi.ini(名称随便取)文件

③配置uiorderapi.ini文件

默认 80端口,我这边指定8082端口

 1 [program:uiorderapi]
2 command=dotnet eHi.UI.Order.Api.dll --urls http://*:8082 --environment "Dev" ; the program (relative uses PATH, can take args)
3 ;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
4 ;numprocs=1 ; number of processes copies to start (def 1)
5 directory=/root/www ; directory to cwd to before exec (def no cwd)
6 ;umask=022 ; umask for process (default None)
7 ;priority=999 ; the relative start priority (default 999)
8 ;autostart=true ; start at supervisord start (default: true)
9 ;startsecs=1 ; # of secs prog must stay up to be running (def. 1)
10 ;startretries=3 ; max # of serial start failures when starting (default 3)
11 ;autorestart=unexpected ; when to restart if exited after running (def: unexpected)
12 ;exitcodes=0,2 ; 'expected' exit codes used with autorestart (default 0,2)
13 ;stopsignal=QUIT ; signal used to kill process (default TERM)
14 ;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
15 ;stopasgroup=false ; send stop signal to the UNIX process group (default false)
16 ;killasgroup=false ; SIGKILL the UNIX process group (def false)
17 ;user=chrism ; setuid to this UNIX account to run the program
18 ;redirect_stderr=true ; redirect proc stderr to stdout (default false)
19 ;stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
20 ;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
21 ;stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
22 ;stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
23 ;stdout_events_enabled=false ; emit events on stdout writes (default false)

6.4 启动 Supervisor 服务

supervisord -c /etc/supervisor/supervisord.conf

这时候已经不需要使用dotnet命令运行程序, 同样可以访问我们部署的.NET Core程序了

6.5配置Supervisor开机启动

进入/usr/lib/systemd/system/目录,并创建supervisord.service文件(或者在本地写好了再通过WinSCP工具传输到指定目录下)

vi /usr/lib/systemd/system/supervisord.service

 1 [Unit]
2 Description=supervisor daemon
3 After=network.target
4
5 [Service]
6 Type=forking
7 ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
8 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
9 ExecReload=/usr/bin/supervisorctl $OPTIONS reload
10 KillMode=process
11 Restart=on-failure
12 RestartSec=42s
13
14 [Install]
15 WantedBy=multi-user.target

设置开机启动

systemctl enable supervisord.service

systemctl daemon-reload

重启,测试是否可以开机自启

7.Supervisor端口号设置

①查看当前所有开放的端口sudo firewall-cmd --list-ports

②添加端口到防火墙(这里已8082端口为例)sudo firewall-cmd --zone=public --add-port={port}/tcp --permanent 

③重启防火墙,使配置生效sudo firewall-cmd --reload

④查看是否已经增加sudo firewall-cmd --list-ports

⑤更新supervisor配置文件,保存并执行sudo supervisorctl update

coredemo 详细X
  没有英汉互译结果
  请尝试网页搜索

若无法访问重启防火墙 systemctl restart firewalld.service

CentOS+Linux部署.NET Core应用程序的更多相关文章

  1. 在CentOS 8 上 部署 .Net Core 应用程序

    在Centos 8 上 部署 .Net Core 应用程序     -- 记录篇 1.更新dnf 源 1 dnf update 2.安装 Asp.Net Core 运行时 1 dnf install ...

  2. Centos7安装.Net Core 2.2环境以及部署.Net Core MVC程序(Apache+Jexus环境)

    原文:Centos7安装.Net Core 2.2环境以及部署.Net Core MVC程序(Apache+Jexus环境) 1.双11抢购***VPS.配置如下: CPU:2 核 内存:2048 M ...

  3. .Net Core 在Linux服务器下部署程序--(3). 部署.net core 后端程序

    确认第二步中的软件已安装完成 lrzsz文件上传下载软件 zip与unzip压缩包软件 net core 相关软件 确认上述软件安装完成之后,开始部署程序 创建部署文件夹 我的习惯是在usr文件夹下新 ...

  4. 生产环境中CentOS7部署NET Core应用程序

    NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. ...

  5. ASP.NET Core学习之四 在CentOS上部署.net core

    一.安装CentOs 以前在大学学过linux,但是对命令行总是有一种深深的排斥感,几年之后,还是又回来了. 1.下载 现在没法FQ,就算是FQ网速也是蜗牛一样慢,我使用阿里云的镜像站进行下载速度还是 ...

  6. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (一) 安装dotnet core

    背景 根据我之前写的文章 将 Net 项目升级 Core项目经验:(一)迁移Net项目为Net Core\Standard项目,我们将公司内部最核心的ORM框架迁移到net core 上面,并在win ...

  7. Linux 部署.Net Core 项目

    前面也有说到,我学习Linux 主要因为要学习一下部署.NET CORE项目到Linux 系统,这里就记录一下部署的详细步骤吧. 主要需要安装以下几个工具 1..NET CORE SDK 2.Jexu ...

  8. linux部署.net Core项目

    首篇笔记,多多关照.方便回忆和给新手指导,大神绕道 首先在Linux系统部署.net Core项目首先准备一个Linux系统的服务器,百度云,阿里云都行. 1.net core 部署在Linux系统上 ...

  9. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (三) 部署运行WEB API项目

    部署dotnet Core Web API 上一步的文章,是我们公司最核心的一个ORM组件,在中标麒麟系统完成了一个插入数据的任务,这一步是将正式的从dot net framework 迁移到 dot ...

随机推荐

  1. hdfs 通过命令坏块监测和删除或者地址获取参数做监控

    [root@nodecm.oldboy.org.cn /data/dfs/nn/current]# hdfs fsck -list-corruptfileblocksConnecting to nam ...

  2. linux内核中的电源管理接口

    1. pm_runtime_enable/pm_runtime_disable 使能/禁止runtime PM,分别对dev->power.disable_depth执行++和--操作,这个变量 ...

  3. 【转】Python读取PDF文档,输出内容

    Python3读取pdf文档,输出内容(txt) from urllib.request import urlopen from pdfminer.pdfinterp import PDFResour ...

  4. 算法习题---5.3字典(Uva10815)

    一:题目 给出一段英文,里面包含一些单词,空格和标点,单词不区分大小写,默认都为小写.按照字典序输出这些单词(这些单词不能有重复,字母全部变成小写) (一)样例输入 Adventures in Dis ...

  5. python文件之间变量和函数的 获取/调用 的方法

  6. matlab基本函数strcmp num2str 字符串格式

    一起来学演化计算-matlab基本函数strcmp num2str 字符串格式 觉得有用的话,欢迎一起讨论相互学习~Follow Me strcmp 比较字符串 语法 tf = strcmp(s1,s ...

  7. 转 mysql 存储过程初探

    https://www.cnblogs.com/qmfsun/p/4838032.htmlMySQL命令执行sql文件的两种方法 https://www.cnblogs.com/mark-chan/p ...

  8. composer autoload优化

    为生产环境作准备 最后提醒一下,在部署代码到生产环境的时候,别忘了优化一下自动加载: composer dump-autoload --optimize 安装包的时候可以同样使用--optimize- ...

  9. 【Leetcode_easy】867. Transpose Matrix

    problem 867. Transpose Matrix solution: class Solution { public: vector<vector<int>> tra ...

  10. Linux查看库依赖方法

    1.查看依赖的库:objdump -x xxx.so | grep NEEDED 2.查看可执行程序依赖的库:objdump -x 可执行程序名 | grep NEEDED 3.查看缺少的库: ldd ...