Centos7 部署.Net Core+Nginx+Supervisor
1、安装.Net Core SDK
1.1、 在安装.NET之前,您需要注册Microsoft密钥,注册产品存储库并安装所需的依赖项。这只需要每台机器完成一次。
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
1.2 、更新可用于安装的产品,然后安装.NET SDK。
sudo yum update
sudo yum install dotnet-sdk-2.2
1.3、验证安装是否成功
dotnet --version
2、部署.Net Core项目
2.1、将发布后的.Net Core项目上传到Linux 新建文件夹 yunying中,然后进入yunying文件夹中,运行项目

2.2、然后再浏览器中访问:http://ip:5000,如果访问不了,先将防火墙关闭


3、安装Nginx并配置Nginx对项目的转发
3.1、添加源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
3.2、安装Nginx
sudo yum install -y nginx
3.3、启动Nginx并设置开机自动运行
sudo systemctl start nginx
sudo systemctl enable nginx
3.4、查看是否安装成功
在浏览器中输入:http://ip

3.5、修改Nginx的配置文件,将/etc/nginx/conf.d/default.conf 文件内容替换为:
server {
    listen       ;
    location / {
    proxy_pass http://localhost:5000;
    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;
    proxy_set_header   X-Forwarded-For
    proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    }
}
配置完成后执行 nginx -s reload 或者 systemctl restart nginx 进行 重启nginx,再次执行2操作运行.net core项目,然后访问80端口,这时有可能报502错误,原因是SELinux配置问题。

解决办法有两种:
a、关闭SELinux
输入:seatatus,如果SELInux status:enabled,表示开启,修改配置文件/etc/selinux/config 修改为SELINUX=disabled
或者执行命令:
setenforce
sed -i 's/enforcing$/disabled/g' /etc/selinux/config
b、将Nginx加到SELinux的允许名单
1、yum install policycoreutils-python
2、sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
3、sudo semodule -i mynginx.pp
重新运行.Net Core项目,并访问,就可以成功访问了。
4、配置Supervisor守护进程
4.1、安装Supervisor:
1、yum install python-setuptools
2、easy_install supervisor
4.2、配置Supervisor:
创建supervisor文件夹,通过echo_supervisord_conf初始化配置文件
1、mkdir /etc/supervisor
2、echo_supervisord_conf > /etc/supervisor/supervisord.conf
  4.3、修改新建的supervisord.conf配置信息,将最后面的
修改为
即去掉最后两行前面的“;”号。
4.4、为.Net Core 项目添加进程配置文件:
在/etc/supervisor/目录下创建名字为conf.d文件夹,在conf.d文件夹中创建一个WebDemo.ini文件,在WebDemo.ini文件添加以下配置
[program:WebDemo]
command=dotnet WebDemo.dll ; 运行程序的命令
directory=/root/yunying/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/WebDemo.err.log ; 错误日志文件
stdout_logfile=/var/log/WebDemo.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
4.5、启动Supervisor服务:
supervisord -c /etc/supervisor/supervisord.conf
启动服务后可以通过命令查看是否配置成功
ps -ef | grep WebDemo.dll
如果看到以下内容,表示配置成功,就可以访问.Net Core项目了

4.6 配置Supervisor开机启动
进入/usr/lib/systemd/system/目录,并创建supervisord.service文件,添加内容:
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
使配置生效:
systemctl daemon-reload
设置服务开机启动:
systemctl enable supervisord
启动supervisor进程:
systemctl start supervisord
验证是否为开机启动:
systemctl is-enabled supervisord

5、常用命令:
5.1、Nginx
nginx //启动nginx
nginx -s reload //重启nginx
nginx -s stop //关闭nginx
5.2、supervisor
supervisorctl status //查看所有任务状态
supervisorctl shutdown //关闭所有任务
supervisorctl start|stop|restart all //控制所有进程
supervisorctl start|stop|restart program_name //控制目标进程
Centos7 部署.Net Core+Nginx+Supervisor的更多相关文章
- CentOS7部署Flask+Gunicorn+Nginx+Supervisor
		
1. Git客户端 Win10安装git for windows 1.1 设置Git全局参数 打开Git Bash $ git config --global user.name "Alic ...
 - [原创]Centos7 安装配置ASP.NET Core+Nginx+Supervisor
		
序言 此教程安装的都是最新版本的. 一键安装 有了这个神器,下面的教程就不用做了!只需运行几行代码,直接打开浏览器就可以访问! cd /home/ wget https://files.cnblogs ...
 - 生产环境中CentOS7部署NET Core应用程序
		
NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. ...
 - CentOS7中配置基于Nginx+Supervisor+Gunicorn的Flask项目
		
配置Nginx 1.安装nginx yum install nginx 2.安装好后在/etc/nginx/default.d中添加location的配置,并指向8001端口,以后Gunicorn会监 ...
 - CentOS+Nginx+Supervisor部署ASP.NET Core项目
		
对.Net Core的学习和实践,已经进行了一年多的世间,截止目前,微软已经发布.Net Core2.1,关于.NetCore的应用部署的文章比比皆是.今天借此,回顾下.net core环境的部署过程 ...
 - Linux+Nginx+Supervisor部署ASP.NET Core实操手册
		
一.课程介绍 在上一节课程<ASP.NET Core托管和部署Linux实操演练手册>中我们学过net core的部署方式多样性和灵活性.我们通过远程工具输入dotnet 程序集名称.dl ...
 - asp.net Core 部署到CentOs7上,使用Nginx做代理
		
一.CentOs7部署Nginx 1.准备工作 Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下: 1 SSL功能需要openssl库,直接通过 ...
 - asp.net core 二 Nginx Supervisor 负载,监听
		
ASP.NET Core负载均衡集群搭建(CentOS7+Nginx+Supervisor+Kestrel) asp.net core在linux运行下,一但命令行退出 ...
 - 阿里云CentOS7部署ASP.NET Core
		
本文主要介绍了阿里云CentOS7下如何成功的发布ASP.Core应用并使用nginx进行代理, 并对所踩的坑加以记录; 环境.工具.准备工作 服务器:阿里云64位CentOS 7.4.1708版本; ...
 
随机推荐
- flask开发环境
			
1. 创建虚拟环境flask_py3 虚拟环境是一个互相隔离的目录 mkvirtualenv flask_py3 2.安装flask包 pip install flask==0.10.1 其他:导入f ...
 - 玩转springcloud(二):注册中心-Eureka
			
一.简介 注册中心 注册中心是服务发现的核心.它保存了各个可用服务实例的网络地址(IP Address和Port).服务注册中心必须要有高可用性和实时更新功能. Netflix Eureka 就是一个 ...
 - 《浏览器工作原理与实践》<04>从输入URL到页面展示,这中间发生了什么?
			
“在浏览器里,从输入 URL 到页面展示,这中间发生了什么? ”这是一道经典的面试题,能比较全面地考察应聘者知识的掌握程度,其中涉及到了网络.操作系统.Web 等一系列的知识. 在面试应聘者时也必问这 ...
 - Kubernetes对象中的PersistentVolume、PersistentVolumeClaim和StorageClass的概念关系
			
Kubernetes容器要持久化数据,离不开volume,k8s的volume和Docker原生概念中的volume有一些差别,不过本次不讲这个,本次要明确的是k8s持久化数据用到的几个对象Persi ...
 - vim文本编辑及文件查找应用4
			
linux系统上的特殊权限 : 特殊权限有:SUID,SGID,STICKY 安全上下文: 1.进程以其发起者的身份运行:进程对文件的访问权限,取决于发此进程的用户的权限:进程是发起些进程用户的代理, ...
 - Keras---Virtualenv 下安装Keras (基于Tensorflow后端)
			
Python---Virtualenv 下安装Keras (基于Tensorflow后端) 一.Keras简介 https://keras-cn.readthedocs.io/en/latest ...
 - bitcoind搭建
			
https://degreesofzero.com/article/installing-bitcoind-on-ubuntu.html1. sudo apt-get install python-s ...
 - jwt、token
			
什么是JWT jwt是一段密文;然而密码是如何产生的? 密码是由三个部分生成: 1.JWT头:JWT头部分是一个描述JWT元数据的JSON对象:{"alg":"hash2 ...
 - CSS基础学习  18.CSS多列
			
四种常见的浏览器内核:
 - Cobbler安装和配置
			
1.yum国内源的安装与更新 1.1 备份原repo文件 cd /etc/yum.repo.d/ mkdir repo_bak mv *.repo repo_bak 1.2 在centos中配置网易和 ...