Centos中部署NetCore项目(二)
前言
在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项目(二)的更多相关文章
- Centos中部署NetCore项目(一)
前言 本文是基于centos8,dotnetcore3.1. (为了服务器安全使用,程序部署最好不要直接root账号进行操作.) 如果使用sudo命令时候,提示用户不在sudoers文件中的解决方法. ...
- 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404
maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...
- 在Tomcat中部署web项目的三种方式
搬瓦工搭建SS教程 SSR免费节点:http://www.xiaokeli.me 在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Man ...
- linux 环境下tomcat中部署jfinal项目
tomcat中部署jfinal项目 问题现象如下图 问题描述: 我在自己的windows7系统上tomcat下面跑这个项目没有任何问题吗,但是当我把项目上传到linux服务器上的tomcatwebap ...
- 在Linux系统中部署NodeJS项目
在Linux系统中部署NodeJS项目 安装NodeJS 首先进入 Node 官网,下载对应的 Node包 下载下来后是一个后缀为 xz 的压缩包,我们把这个包上传到 Linux 系统中的 /usr/ ...
- CentOS 7 部署 node 项目
CentOS 7 部署 node 项目 安装 node 环境 方法一:使用 wget 的方式下载压缩包进行解压 淘宝node镜像地址,进入地址选择自己想要安装的版本 wget https://npm. ...
- 在centos中部署jenkins
在centos中部署jenkins,需要的环境:安装jdk,Apache-tomcat 这两步我前面文章里已写,再次忽略 到官网下载最新的jenkins 我这里的是 jenkins.war 把该文件 ...
- CentOS 6.8 部署django项目二
CentOS 6.8 部署django项目一 1.项目部署后发现部分页面的样式丢失,是因为在nginx中配置的static路径中未包含. 解决:在settinfs.py中添加: STATIC_ROOT ...
- .NetCore中的程序通过Docker在CentOS中部署
基础说明 安装Docker过程就略过了 创建一个Asp.Net Core程序 启用Docker支持,会生成Dockerfile文件,接下来看下这个文件,当然不同的版本生成的具体可能不一致 FROM m ...
随机推荐
- Raft 协议
Paxos 存在的问题 Paxos 算法的描述偏学术化,缺失了很多细节,无法直接应用于工程领域.实际工程应用中的分布式算法大多是 Paxos 的变种,验证这些算法的正确性也成为了一个难题. 举个例子: ...
- 搭建Leanote私有云服务器
安装流程 安装Golang 安装Leanote 安装Mongodb 配置Leanote 初始化Mongodb数据 运行Leanote 安装Golang # 下载go1.14.4.linux-amd64 ...
- 笔记本键盘按U键却变成了4
解答 笔记本键盘U盘变成了4,是因为你开启了小键盘功能.出现该问题,只要关闭小键盘功能即可,操作如下: 按住键盘下方的Fn,同时按住键盘顶部的F键中标有Numlk的键. 电脑屏幕出现解锁标志,小键盘功 ...
- 【开源】Springboot API 一键生成器
Springboot API 一键生成器 写这个项目,最大的想法就是:不做CRUD 程序猿 Springboot 在我们平时开发项目当中,是如此的常用.然而,比如平时我们写的一些: XX 管理系统 X ...
- 54.Qt-将界面程序封装成动态库DLL
1.生成dll 然后选择创建共享库: 创建好后,修改pro文件,改为下面两句(这样就可以创建界面了): 然后修改sharedlib.h: #ifndef SHAREDLIB_H #define SH ...
- go视频提取音频
package main import ( "bytes" "fmt" "log" "os" "os/exec ...
- wifi - 无线相关命令
1.Linux环境下的无线相关操作命令 interface 指代当前网卡 一般是 wifi0 , eth0 , ath1等 ifconfig - 常用查看网络设定及控制网卡(Windows下是ip ...
- 想买保时捷的运维李先生学Java性能之 JIT即时编译器
前言 本文记录日常学习<深入理解Java虚拟机>,不知道为啥感觉看一遍也就过了,喜欢动动手理解理解,这样才有点感觉,静不下心来的时候,看书抄书也可以用这个办法. 一.什么是JIT(Just ...
- int是java.lang包中可用的类的名称
int是java.lang包中可用的类的名称(x) int为基本数据类型,不是类
- Scala 特殊符号含义
date: 2019-08-01 11:15:27 updated: 2019-08-22 15:22:32 Scala 特殊符号含义 参考地址 1. ::: :::(三个冒号)只用于连接两个 Lis ...