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 ...
随机推荐
- Java知识系统回顾整理01基础01第一个程序05Eclipse中运行Java程序
一.打开Java文件 直接打开在 命令行Hello World 中创建的java 文件 HelloWorld.java 二.运行 点击绿色运行按钮,直接运行 在eclipse中,编译过程自动执行了 三 ...
- C++ CComboBox控件详解
转载:http://blog.sina.com.cn/s/blog_46d93f190100m395.html C++ CComboBox控件详解 (2010-09-14 14:03:44) 转载▼ ...
- LCD1602 库函数
LCD1602 库函数 This library allows an Arduino board to control LiquidCrystal displays (LCDs) based on t ...
- C#实例 武汉肺炎全国疫情实时信息图
如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! --------------------------- ...
- 在linux下搭建l2tp隧道
搭一个l2tp隧道,拓扑如下 两台机器是CentOS5,内核选上CONFIG_LEGACY_PTYS选项后自己编译的,l2tp是已经停更的l2tpd-0.69.先在LS上配置IP地址,iptables ...
- pytest文档52-命令行参数--setup-show查看fixture的执行过程
前言 使用命令行运行 pytest 用例的时候,看不到 fixture 的执行过程. 如果我们想知道fixture的执行过程和先后顺序,可以加上 --setup-show 命令行参数,帮助查看 fix ...
- 利用Image对象,建立Javascript前台错误日志记录
手记:摘自Javascript高级程序设计(第三版),利用Image对象发送请求,确实有很多优点,有时候这也许就是一个创意点,再次做个笔记供自己和大家参考. 原文: 开发 Web 应用程序过程中的一种 ...
- 【logstash】 - 使用json解析数
ilter-json:http://www.logstash.net/docs/1.4.2/filters/json json数据: {"account_number":995,& ...
- centos8上添加sudoer用户
一,检查服务器是否已安装sudo的rpm包? 1,查询rpm包列表 [root@yjweb ~]# rpm -qa | grep sudo libsss_sudo-2.0.0-43.el8_0.3.x ...
- Python字典的初识、增删改查及嵌套
为什么要有字典? 列表可以存储大量的数据,但数据间的关联型不强 列表的查询速度相对慢 dict:字典,容器型数据类型 数据类型的分类: 可变与不可变 可变(不可哈希)的数据类型: 列表list,字典d ...