【.Net Core】 使用 Nginx 发布 .Net Core 3.1 项目至LInux(Centos7)。
前置博客(博客中使用的项目来自于此):
【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)。的更多相关文章
- nginx+tomcat实现负载均衡以及session共享(linux centos7环境)
一.nginx的安装 1.准备三份tomcat tomcat1 设置端口 8080 tomcat2 设置端口 8081 tomcat3 设置端口 8082 2. 下载nginx 3. 解压到/home ...
- .NET Core项目部署到Linux(Centos7)(六)发布.NET Core 项目到Linux
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- .NET Core项目部署到Linux(Centos7)(十)总结
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- .NET Core项目部署到Linux(Centos7)(七)启动和停止.NET Core项目
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- .NET Core项目部署到Linux(Centos7)(八)为.NET Core项目创建Supervisor进程守护监控
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- .NET Core项目部署到Linux(Centos7)(一)前言
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- .NET Core项目部署到Linux(Centos7)(九)防火墙配置,允许外网或局域网访问.NET Core站点
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- .NET Core项目部署到Linux(Centos7)(二)环境和软件的准备
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- .NET Core项目部署到Linux(Centos7)(三)创建.NET Core API项目
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
随机推荐
- C#设计模式-建造者模式(Builder Pattern)
引言 在软件测试中,一个项目的自动化测试包括UI自动化.API自动化.压力自动化等,把这些不同类型的自动化测试组装在一起变构成了一个项目的自动化测试.通过执行项目的自动化测试变能执行他的所有类型的自动 ...
- Spring Security验证,提示正确的信息
关于Spring Security的使用,之前也整理过一些笔记,但是在提示信息的时候,总感觉还缺点什么?不管是不是前后端分离,我们都希望在登录验证出现错误的时候,能够提示友好的中文信息. 在前后端不分 ...
- CSS两列布局的多种方式
两列布局(一侧固定宽度,一侧自适应),在工作中应该是经常使用到,可以说是前端基础了.这种两列布局的样式是我们在平时工作中非常常见的设计,同时也是面试中要求实现的高频题.很有必要掌握以备不时之需.这里总 ...
- hi-nginx-java并发性能一窥
欲知hi-nginx-java的并发性能,用jmeter进行测试便知一二. 设定用户数为100000,循环次数为100,ramp-up perio为2: 请求地址为http://localhost/t ...
- 链表(LinkedList)解题总结
链表基础知识 定义 链表(Linked List)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer). 链表的操作 操作 ...
- Javaweb项目页面实时显示后台处理结果
http://www.cnblogs.com/dong-xu/p/6701271.html 此博文甚好,项目参照博主代码可实现. 前端页面: <%@ page language="ja ...
- phpmyadmin反序列化漏洞(WooYun-2016-199433)
简介 环境复现:https://github.com/vulhub/vulhub 线上平台:榆林学院内可使用协会内部的网络安全实验平台 phpMyAdmin是一套开源的.基于Web的MySQL数据库管 ...
- day01-系统基础信息模块
前言:2015年,由于大规模采用云平台虚拟机部署应用,每套应用系统的MySQl.接口机.WEB服务器.文件服务器需要经常进行版本升级.配置更新.安全补丁加固.iptables调整.配置核实,大量的手工 ...
- mysql密码问题
这位老哥的: 版权声明:本文为CSDN博主「csdn-华仔」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/ ...
- .net core quartz job作业调度管理组件
定时作业对于多数系统来说,都会用到,定时作业的实现方式可以有多种方式,简单的方式用Timer就可以实现,但是达不到通用的效果,本文采用Quartz基础组件来搭建一套企业通用的作业调度管理服务,希望对于 ...