【.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. ...
随机推荐
- Windows自带MD5 SHA1 SHA256命令行工具
感恩大佬LiuYanYGZ的文章 MyHash 检验工具http://www.zdfans.com/html/4346.html HashMyFiles Hash校验工具http://www.nirs ...
- JS中的Array之方法(3) -之迭代
colors=["red", "橘色", "瓜皮色", "古铜色", "#aaa", "# ...
- intelx86为何从0xFFFF0处执行
第一条指令的地址 在用户按下计算机电源开关之后,CPU会自动的将其CS寄存器设定为0xFFFF,将其IP寄存器设定为0x0000.由于CS:IP指出了下一条指令的地址[1],因此CPU会跳到0xFFF ...
- seaborn库中柱状图绘制详解
柱状图用于反映数值变量的集中趋势,用误差线估计变量的差值统计.理解误差线有助于我们准确的获取柱状图反映的信息,因此打算先介绍一下误差线方面的内容,然后介绍一下利用seaborn库绘制柱状图. 1.误差 ...
- ceph的df容量显示计算
显示数据 [root@lab201 ~]# ceph df GLOBAL: SIZE AVAIL RAW USED %RAW USED 1092T 404T 688T 63.01% POOLS: NA ...
- 在线动态修改ulimit
前言 系统中有些地方会进行资源的限制,其中的一个就是open file的限制,操作系统默认限制的是1024,这个值可以通过各种方式修改,本篇主要讲的是如何在线修改,生产上是不可能随便重启进程的 实践 ...
- linux笔记【简版】
1.linux简介 kernel 内核 shell 外壳 (类似win上的cmd) sh,Bash:#root,$user csh:#root,%user filesystem 文件管理系统 2.优势 ...
- Jmeter 处理接口乱码
第一步:添加 BeanShell Listener 第二步: 设置值 : prev.setDataEncoding("UTF-8") 第三步: 重新跑脚本,看接口返回值
- Qt For Android 环境搭建
由于时间有限,未抽出时间进行android环境搭建整理的流程,这里先贴出几个参考的地址 https://blog.csdn.net/foruok/article/details/23528293 此链 ...
- 环境安装和pycharm中一些基本设置
一.Pycharm的使用和Python环境 1.python和pycharm的安装 python推荐版本3.7/3.8 pycharm选择社区版本 查看python版本在cmd中输入"pyt ...