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的更多相关文章

  1. CentOS7部署Flask+Gunicorn+Nginx+Supervisor

    1. Git客户端 Win10安装git for windows 1.1 设置Git全局参数 打开Git Bash $ git config --global user.name "Alic ...

  2. [原创]Centos7 安装配置ASP.NET Core+Nginx+Supervisor

    序言 此教程安装的都是最新版本的. 一键安装 有了这个神器,下面的教程就不用做了!只需运行几行代码,直接打开浏览器就可以访问! cd /home/ wget https://files.cnblogs ...

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

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

  4. CentOS7中配置基于Nginx+Supervisor+Gunicorn的Flask项目

    配置Nginx 1.安装nginx yum install nginx 2.安装好后在/etc/nginx/default.d中添加location的配置,并指向8001端口,以后Gunicorn会监 ...

  5. CentOS+Nginx+Supervisor部署ASP.NET Core项目

    对.Net Core的学习和实践,已经进行了一年多的世间,截止目前,微软已经发布.Net Core2.1,关于.NetCore的应用部署的文章比比皆是.今天借此,回顾下.net core环境的部署过程 ...

  6. Linux+Nginx+Supervisor部署ASP.NET Core实操手册

    一.课程介绍 在上一节课程<ASP.NET Core托管和部署Linux实操演练手册>中我们学过net core的部署方式多样性和灵活性.我们通过远程工具输入dotnet 程序集名称.dl ...

  7. asp.net Core 部署到CentOs7上,使用Nginx做代理

    一.CentOs7部署Nginx 1.准备工作 Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下: 1 SSL功能需要openssl库,直接通过 ...

  8. asp.net core 二 Nginx Supervisor 负载,监听

           ASP.NET Core负载均衡集群搭建(CentOS7+Nginx+Supervisor+Kestrel)          asp.net core在linux运行下,一但命令行退出 ...

  9. 阿里云CentOS7部署ASP.NET Core

    本文主要介绍了阿里云CentOS7下如何成功的发布ASP.Core应用并使用nginx进行代理, 并对所踩的坑加以记录; 环境.工具.准备工作 服务器:阿里云64位CentOS 7.4.1708版本; ...

随机推荐

  1. Java 程序员必备的一些流程图

    1.spring的生命周期 2.TCP三次握手,四次挥手 3.线程池执行流程图 4.JVM内存结构 5.Java内存模型 6.springMVC执行流程图 7.JDBC执行流程 8.spring cl ...

  2. python监控CPU/内存/磁盘,超过指定百分比,发送邮件

    #!/usr/bin/python #coding:utf-8 #导入psutil模块 import psutil import yagmail def mail(subject,contents): ...

  3. 多线程--volatile

    在解释volatile关键字之前,先说说java的指令重排以及代码的执行顺序. 指令重排: public void sum(){ int x = 1; int y = 2; int x = x + 1 ...

  4. 使用 visual studio 2019 社区版打开touchgfx工程注意项

    @2019-09-23 [环境] touchgfx designer 4.10.0 visual studio 2019 社区版 [问题] #error 1 使用 visual studio 2019 ...

  5. 如何处理请求返回的二进制数据流转化成xlsx文件?

    /* fileName : 文件名 res:二进制流 */ function getOutExcel(fileName, res) { let blob = new Blob([res], { typ ...

  6. Nginx之什么是反向代理(一)

    什么是反向代理? 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求 ...

  7. idea如何打开右侧工具栏

  8. spark数据倾斜处理

    spark数据倾斜处理 危害: 当出现数据倾斜时,小量任务耗时远高于其它任务,从而使得整体耗时过大,未能充分发挥分布式系统的并行计算优势. 当发生数据倾斜时,部分任务处理的数据量过大,可能造成内存不足 ...

  9. 6、DockerFile解析:三步走、保留字指令

    1.dockerfiel是什么 1.是什么 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本. 2.构建三步骤 编写Dockerfile文件 docker bu ...

  10. 解决ubuntu的screen已经处于Attached状态,无法再打开窗口

    Attached表示该窗口已经被上一登录用户使用,需要重新登录 1. 先查询窗口id screen -ls 3606.node (11/26/2019 07:31:49 PM) (Attached) ...