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

【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. 利用远程桌面管理winserver集群

    在适用mstsc连接winserver服务器的场景下(别问为什么不VNC),可以利用rdp文件等方式减轻连接的操作负担 利用.rdp文件免密登录 rdp文件本质上是一个mstsc的选择,或者不如说ms ...

  2. 记一次使用idea插件CamelCase技巧

    1.在idea中下载插件CamelCase插件  2.使用Shift+Alt+U快捷键进行转换 3.由于转换格式比较导致多次使用快捷键才能达到自己想要的效果,此插件提供了允许禁用某些转换或更改它们在首 ...

  3. Mycat分库分表(一)

    随着业务变得越来越复杂,用户越来越多,集中式的架构性能会出现巨大的问题,比如系统会越来越慢,而且时不时会宕机,所以必须要解决高性能和可用性的问题.这个时候数据库的优化就显得尤为重要,在说优化方案前,先 ...

  4. react 中组件状态的一些理解

    组件状态:即 state 只有当state发生变化时,组件才会更新. 当一个html标签的值依赖于state的值得时候,如果state的值没有更新时,这个标签的值无论如何也是不会更新的. 看下面示例: ...

  5. 【JVM第八篇--垃圾回收】GC和GC算法

    写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记.其观看地址如下:尚硅谷2020最新版宋红康JVM教程 1.垃圾 1.1.什么是垃圾 垃圾(Garbage)在Java语言中是指在运行程序中 ...

  6. kafak ack应答机制

    ack 应答机制 对于某些不太重要的数据,对数据的可靠性要求不是很高,能够容忍数据的少量丢失, 所以没必要等 ISR 中的 follower 全部接收成功. 所以 Kafka 为用户提供了三种可靠性级 ...

  7. MySQL慢查询开启、日志分析(转)

    说明 Mysql的查询讯日志是Mysql提供的一种日志记录,它用来记录在Mysql中响应时间超过阈值的语句 具体指运行时间超过long_query_time值得SQL,则会被记录到慢查询日志中.lon ...

  8. 如何通过iptables代理访问内网

    场景 A机器能够联通内网机器,B机器能够联通A机器,但是访问不到内网机器,场景是希望通过A机器能够转发直接联通局域网内的其它机器 机器IP 内网为172.0.0.x/24 A机器为172.0.0.10 ...

  9. [C/C++] 结构体内存对齐:alignas alignof pack

    简述: alignas(x):指定结构体内某个成员的对齐字节数,指定的对齐字节数不能小于它原本的字节数,且为2^n; #pragma pack(x):指定结构体的对齐方式,只能缩小结构体的对齐数,且为 ...

  10. SQL注入实战新手教程

    本文章仅用于网络安全交流学习,严禁用于非法用途,否则后果自负 一.如何批量找SQL注入(工具+资源都打包):http://www.liuwx.cn/post-149.html 1.SQL注入点搜索关键 ...