前言

在centos中部署程序,一般都不会是使用控制台进程直接启动,或者是后台运行。而是一些守护进程管理工具进行管理,例如supervisor。

部署Web相关程序,使用nginx是比较普遍的,

安装、配置supervisor

1、supervisor简介

supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。

它可以很方便的监听、启动、停止、重启一个或多个进程。我可以使用supervisor监控程序在崩溃时自动重启,而不像是系统后台运行的程序崩溃了需要再执行脚本进行启动。

安装supervisor

执行命令安装

sudo yum -y install supervisor

管理supervisor相关命令

systemctl status supervisord     ----查看supervisor 状态
supervisord --version ---查看supervisor版本(验证是否安装)
systemctl start supervisord ----启动supervisor
systemctl enable supervisord ---设置supervisor 开机启动
systemctl disable supervisord ---设置开机不启动

配置

查看supervisor配置文件。其中files=xxxx表示supervisor启动时会加载的文件(一般为ini,可以自定义)进行启动相应的程序。

vi /etc/supervisord.conf

配置程序启动文件:

在/etc/supervisord.d文件夹中添加文件mywebapi.ini,

vi /etc/supervisord.d

文件内容如下

[program:mywebapi]                        ;自定义进程名称
command=dotnet MyWebApi.dll --urls="http://*:5888" ;程序启动命令
directory=/root/myproject ;命令执行的目录
autostart=true ;在Supervisord启动时,程序是否启动
autorestart=true ;程序退出后自动重启
startretries=5 ;启动失败自动重试次数,默认是3
startsecs=1 ;自动重启间隔
user=root ;设置启动进程的用户,默认是root
priority=999 ;进程启动优先级,默认999,值小的优先启动
stderr_logfile=/var/log/WishWebApi.err.log ;标准错误日志
stdout_logfile=/var/log/WishWebApi.out.log ;标准输出日志
environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量
stopsignal=INT ;请求停止时用来杀死程序的信号

文件保存后,重新加载supervisor

sudo supervisorctl reload

验证程序是否正常

附:

相关命令查看supervisor守护的程序

sudo supervisorctl status                    #查看守护进程的状态
sudo supervisorctl start xxxx #启动xxxx进程
sudo supervisorctl restart xxxx #重启xxxx进程
sudo supervisorctl stop xxxx #结束xxxx进程

nginx安装、配置

nginx简介

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
Nginx 是一款面向性能设计的 HTTP 服务器,相较于 Apache、lighttpd 具有占有内存少,并发能力强,稳定性高等优势。

nginx中文文档:https://tool.oschina.net/apidocs/apidoc?api=nginx-zh

安装nginx

安装nginx命令

sudo yum install nginx

常用Nginx管理命令

systemctl status nginx                #查看nginx状态
sustemctl start nginx #启动nginx
systemctl restart nginx #重启nginx
systemctl stop nginx #停止nginx
systemctl enable nginx #设置开机启动
systemctl disable nginx #禁止开机启动

配置

1、查看nginx默认配置文件。

1)、nginx默认配置服务监听80端口;

2)nginx 默认读取配置文件为 /etc/nginx/conf.d/*conf

查看配置文件的命令

vi /etc/nginx/nginx.conf

配置程序启动设置文件

sudo vi /etc/nginx/conf.d/mywebapi.conf

文件内容

server {
listen 8090;
location / {
proxy_pass http://localhost:5888;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

检查配置文件是否成功

sudo nginx -t

接着重启nginx,并配置防火墙端口,重启防火墙

===========在首次配置nginx时一般都要配置Selinux,不然可能会导致nginx无法启动。或者是nginx启动了,防火墙也设置了,外部访问还是502的情况出现============

配置SELinux

方法1.关闭SELinux
输入:sestatus,如果SELinux status: enabled ,表示开启,输入vi /etc/selinux/config 修改配置:SELINUX=disabled。
方法2.将nginx添加至SELinux的白名单
逐行执行如下命令(最好以root权限账号运行,不然可能会提示权限不足):

yum install policycoreutils-python-utils

cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

semodule -i mynginx.pp

======================

最后验证

Centos中部署NetCore项目(二)的更多相关文章

  1. Centos中部署NetCore项目(一)

    前言 本文是基于centos8,dotnetcore3.1. (为了服务器安全使用,程序部署最好不要直接root账号进行操作.) 如果使用sudo命令时候,提示用户不在sudoers文件中的解决方法. ...

  2. 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404

     maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...

  3. 在Tomcat中部署web项目的三种方式

    搬瓦工搭建SS教程 SSR免费节点:http://www.xiaokeli.me 在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Man ...

  4. linux 环境下tomcat中部署jfinal项目

    tomcat中部署jfinal项目 问题现象如下图 问题描述: 我在自己的windows7系统上tomcat下面跑这个项目没有任何问题吗,但是当我把项目上传到linux服务器上的tomcatwebap ...

  5. 在Linux系统中部署NodeJS项目

    在Linux系统中部署NodeJS项目 安装NodeJS 首先进入 Node 官网,下载对应的 Node包 下载下来后是一个后缀为 xz 的压缩包,我们把这个包上传到 Linux 系统中的 /usr/ ...

  6. CentOS 7 部署 node 项目

    CentOS 7 部署 node 项目 安装 node 环境 方法一:使用 wget 的方式下载压缩包进行解压 淘宝node镜像地址,进入地址选择自己想要安装的版本 wget https://npm. ...

  7. 在centos中部署jenkins

    在centos中部署jenkins,需要的环境:安装jdk,Apache-tomcat 这两步我前面文章里已写,再次忽略 到官网下载最新的jenkins 我这里的是  jenkins.war 把该文件 ...

  8. CentOS 6.8 部署django项目二

    CentOS 6.8 部署django项目一 1.项目部署后发现部分页面的样式丢失,是因为在nginx中配置的static路径中未包含. 解决:在settinfs.py中添加: STATIC_ROOT ...

  9. .NetCore中的程序通过Docker在CentOS中部署

    基础说明 安装Docker过程就略过了 创建一个Asp.Net Core程序 启用Docker支持,会生成Dockerfile文件,接下来看下这个文件,当然不同的版本生成的具体可能不一致 FROM m ...

随机推荐

  1. JS之回调函数(callback)

    1.什么是回调函数? -- 简单点说,一个函数被作为参数传递给另一个函数(在这里我们把另一个函数叫做"otherFunction"),回调函数在otherFunction中被调用. ...

  2. C++(VS2015)模板显式特化之template语法深入理解

    首先说下遇到的情况: 这里在vc++6.0上建立了一个自定义模板类,再去覆盖这个类,分别使用部分覆盖,整体覆盖 但在vs2015上去整体覆盖类会报错. 错误如下: 错误原因:个人感觉是新版本的vs更接 ...

  3. arduino中SCoop库的简单应用案例

    转载:https://www.csdn.net/gather_27/MtTaggzsMDExMS1ibG9n.html arduino中SCoop库的简单应用案例首先这篇文章来在视频https://v ...

  4. #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

    转载:https://www.cnblogs.com/cvwyh/p/10570920.html 错误 在使用VS编译文件时出现了如下错误: #error: Building MFC applicat ...

  5. 为什么很多国内公司在做 AI 芯片?

    据网上搜到的新闻报道,截止2019年,已经有20家企业投入到 AI 芯片的研发中,其中有很多厂商的芯片已经流片甚至商用了.为何有这么多公司在做AI芯片呢?简单来讲就是四个字:有利可图.具体来说有以下三 ...

  6. Golang是如何操作excel的?

    关键术语介绍 为了方便开源库的快速上手,我们先来了解 excel 中的几个关键术语,如下图所示,①为sheet,也就是表格中的页签:②为row,代表 excel 中的一行:③为cell,代表 exce ...

  7. CRF基础知识以及如何实现Learning,Inference

    CRF:Conditional Random Field,即条件随机场. 首先介绍一下基础背景知识.机器学习中的分类问题可以分为硬分类和软分类.硬分类常见的模型有SVM.PLA.LDA等.SVM可以称 ...

  8. iOS使用NSTextAttachment添加图片,图片模糊

    最近在忙的项目中,需要处理富文本的相关内容,产品需求并不复杂,所以想着用TextKit处理,顺便学习一下,没想到直接掉坑.在此记录一下(都是血泪史),顺便为有需要的小伙伴提供参考. // Add th ...

  9. python之线程池和进程池

    线程池和进程池 一.池的概念 池是用来保证计算机硬件安全的情况下最大限度的利用计算机 它降低了程序的运行效率但是保证了计算机硬件的安全从而让你写的程序能够正常运行 ''' 无论是开设进程也好还是开设线 ...

  10. 多测师讲解selenium_运行报告相出错归纳_高级讲师肖sir

    <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> EETraceback (most recent c ...