前置博客(博客中使用的项目来自于此):

【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)

环境:.Net Core 3.1 , Centos7.6

工具:连接工具MobaXterm,阿里云服务器一台

1.安装微软签名,不安装不能使用net。

rpm --import https://packages.microsoft.com/keys/microsoft.asc

2.安装.net环境,也可以单独安装 dotnet-runtime ,但是缺少很多方便的工具包,不推荐。

yum install dotnet-sdk-3.1

3.先修改要发布的端口号,再右键项目发布,然后修改信息,发布。

发布完,到目标文件夹把文件拖到  /home/xxx(随意取名)   目录下

      

dotnet Test.dll 

使用donet XXX运行项目,Test.dll是项目名。 运行后此项目只能本机访问,没有任何作用

PS.

下面使用nginx进行代理转发请求,使外网也能访问。

如果启动的端口是5000,Nginx 可把5000端口映射到其他端口。

4.添加 Nginx 存储库

在某些Centos版本要添加 CentOS 7 EPEL 仓库,实测Centos7.8不需要 :

yum install epel-release

5.安装 Nginx

yum install nginx

6.启动 Nginx

systemctl enable nginx  #设置nginx为开机启动

systemctl start nginx  #启动nginx服务

// 其他

systemctl stop nginx     #停止 nginx 服务

systemctl restart nginx  #重启 nginx 服务

systemctl nginx reload   #重新加载配置文件。

systemctl status nginx   #查看服务器状态

ps -ef | grep nginx      #查看Nginx是否启动

7.修改 Nginx 配置文件

两种方法,第一种是把 /etc/nginx/nginx.conf 文件中直接改 server 配置信息

第二种是把 /etc/nginx/nginx.conf 文件中server注释掉,然后在 /etc/nginx/conf.d/ 添加一个 xxx.conf 配置文件,如下所示

红色画圈部分的意思是加载这个文件夹下面的所有 .conf 配置文件

新建一个xxx.conf配置文件

netcore.conf 配置如下

server {
listen 80;
location / {
proxy_pass http://localhost:8001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $http_host; proxy_cache_bypass $http_upgrade;
}
}

保存后重启nginx

 systemctl restart nginx  #重启 nginx 服务

或者刷新配置

sudo nginx -t    #检查配置文件
sudo nginx -s reload #重新加载配置文件

访问站点80端口(80端口是默认端口自动隐藏),此端口会被nginx转发至 8001端口

8.配置守护进程Supervisor

项目启动只能前台运行,不能进行其他操作,所以要建一个守护进程,使得项目后台运行

安装 supervisor

yum install supervisor

检查 /etc/supervisord.conf 配置文件,如果不为圈中代码,请修改为圈中代码。

意思是 supervisord.d 文件夹下的所有 ini 类型的文件都是配置文件

到/etc/supervisord.d 目录下 新建 xxx.ini文件,文件配置内容如下 自己定义,记得一定要改运行命令和程序路径。

[program:TestNetCore]
command=dotnet Test.dll #运行命令
directory=/home/dotnet/Test #程序路径
environment=ASPNETCORE__ENVIRONMENT=Production #环境变量
user=root #设置启动进程的用户,默认是root
stopsignal=INT #请求停止时用来杀死程序的信号
autostart=true #自动启动
autorestart=true #3秒自动重启
startsecs=3 #自动重启间隔
stderr_logfile=/var/log/ossoffical.err.log #标准错误日志 路径可以自定义
stdout_logfile=/var/log/ossoffical.out.log #标准输出日志 路径可以自定义

保存配置文件,启动守护进程,然后设置开机启动

supervisord -c /etc/supervisord.conf  #启动服务
supervisorctl reload #重新加载配置
systemctl enable supervisord #开机启动

其他相关操作

supervisorctl shutdown #关闭
systemctl is-enabled supervisord #验证是否开机启动
systemctl status supervisord.service #执行命令,查看服务器启动失败的原因

【.Net Core】 使用 Nginx 发布 .Net Core 3.1 项目至LInux(Centos7)。的更多相关文章

  1. nginx+tomcat实现负载均衡以及session共享(linux centos7环境)

    一.nginx的安装 1.准备三份tomcat tomcat1 设置端口 8080 tomcat2 设置端口 8081 tomcat3 设置端口 8082 2. 下载nginx 3. 解压到/home ...

  2. .NET Core项目部署到Linux(Centos7)(六)发布.NET Core 项目到Linux

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

  3. .NET Core项目部署到Linux(Centos7)(十)总结

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

  4. .NET Core项目部署到Linux(Centos7)(七)启动和停止.NET Core项目

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

  5. .NET Core项目部署到Linux(Centos7)(八)为.NET Core项目创建Supervisor进程守护监控

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

  6. .NET Core项目部署到Linux(Centos7)(一)前言

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

  7. .NET Core项目部署到Linux(Centos7)(九)防火墙配置,允许外网或局域网访问.NET Core站点

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

  8. .NET Core项目部署到Linux(Centos7)(二)环境和软件的准备

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

  9. .NET Core项目部署到Linux(Centos7)(三)创建.NET Core API项目

    目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...

随机推荐

  1. java开发就业信息管理系统

    本文实例为大家分享了java就业信息管理平台开发案例,供大家参考,具体内容如下 可查询公司信息,学生信息,班级信息,针对学生就业与否信息的统计,老师和管理员登录后的权限不同等就业信息管理平台想要实现的 ...

  2. yum源备份并安装扩展仓库

    yum源相关 默认的YUM源 1.备份默认的YUM源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.ba ...

  3. 【译】理解Rust中的闭包

    原文标题:Understanding Closures in Rust 原文链接:https://medium.com/swlh/understanding-closures-in-rust-21f2 ...

  4. 数论总结——更新ing

    数论还是有很多没学完 只是小小的总结 一.同余定理 1.反身性:\(a\equiv a (mod m)\) 2.对称性:若\(a\equiv b(mod m)\),则\(b\equiv a (mod ...

  5. <摘自>飞:jxl简析[ http://www.emlog.net/fei ]

    <摘自>飞:jxl简析:http://www.emlog.net/fei 最近,完成了一个网上报表系统,刚巧用到了一个 JAVA 操作 excel 表格的 API .闲来无事,就将其大概的 ...

  6. 解决 Vmware 服务拒绝访问的问题

    背景 在服务页面想将 VMware NAT Service 设置为自动开启的,但是保存的时候显示拒绝访问,如下图 解决方案 想到在本机的火绒启动项管理里面将 VMware NAT Service 设置 ...

  7. fork()系统调用后,对于open()前后父子进程的访问

    一开始我也不是很懂,后来看了一篇别人的博客觉得写得特别好,现在拷贝下来分享一下. 如果换成write函数 如果换成write函数,先open()后fork(),那么父子进程共享文件描述符,即使在子进程 ...

  8. mdp文件-Chapter1-MINIM.mdp

    mdp文件是能量最小化,NVT模拟,NPT模拟与MD模拟的必须文件. mdp文件的详细解释可以参考官方文档http://manual.gromacs.org/online/mdp_opt.html 接 ...

  9. 测试_appium测试工具

    一.Appium介绍 Appium是一个开源的自动化测试工具,其支持iOS和安卓平台上的原生的,基于移动浏览器的,混合的应用. 1.Appium 理念 Appium是基于以下的四个理念设计来满足移动平 ...

  10. Vue.js自定义标签属性并获取属性,及绑定img的src属性的坑

    一.定义属性: 一般定义属性都是为了动态的去获取属性的值,或者动态的设置属性的值,如果想仅仅是设置一个普通的属性,直接在便签上设置属性即可,就像使用html的title.name等属性一样,如< ...