当前位置:首页 > Web开发 > 正文

.Net Core部署在Linux服务器:Nginx反向代理+Supervisor进程守护

2024-03-31 Web开发

前言:.Net Core 程序(网站)可以部署在windows IIS ,也可以部署在Linux系统(更加推荐)


本文部署,基于.net core 2.1,服务器CentOS 7, 需要安装的服务有2个:Nginx,SuperVisor(进程守护)

命令预览:

Linux: 重启:reboot Nginx: 强杀: killall -9 nginx     测试配置是否正确: nginx -t     启动: nginx SuperVisor:停止:supervisorctl shutdown           启动: supervisord

View Code

描述:(以下,我以开发一个在线记事本 BookkeepingWeb 为例 )

一。在本地做好项目

开发好Web,并配置好程序监听的端口(不配置,默认5000端口,如果服务器部署多个web的话,这里应该更改端口),VS里面,或者cmd进入到项目进行发布,发布项目下的\bin\Debug\netcoreapp2.1\publish 后,

在cmd 进入到该项目运行 :dotnet 程序名称.dll ,浏览器打cmd提示的访问地址,保证正常访问。

技术图片

找到程序的路径:D:\study\consoleTest\Bruke.Bookkeeping\Bruke.Bookkeeping.Core.Web\bin\Debug\netcoreapp2.1\publish

程序的启动入口:Bruke.Bookkeeping.Core.Web.dll

技术图片

运行起来:打开cmd 进入程序路径  执行: dotnet 程序入口名称

技术图片

执行:dotnet Bruke.Bookkeeping.Core.Web.dll

技术图片

浏览器查看是否可以访问::5000  ,如图正常。

技术图片

当cmd关闭或 程序shut down(Ctrl+C) 时, 网站就是访问不了,说明,由cmd单线程监听端口,并执行和返回的。比如浏览器访问了本地5000端口,就会给这个单线程的cmd捕获到,并执行你的代码后返回到浏览器。

至此,本地程序是没问题的,那么就可以把publish拷贝到Linux服务器上了,下面是服务器如何设置监听端口,并转发请求的。

附(设置端口)的博文,可以先忽略该文:https://www.cnblogs.com/1175429393wljblog/p/8267772.html

二.服务器操作

1.接下来就是把publish 拷贝到Linux服务器上去即可,推荐使用 SecureCRSecureFXPortable,可以上传文件,命令运行。

链接: https://pan.baidu.com/s/15kDCQn3xSg4PyZO5R4gPLw 提取码: punw 

技术图片

在服务器 /root 添加文件夹 BookkeepingWeb,把publish的东西拷贝上来。

技术图片

2.服务上安装.Net Core SDK (基于你的项目版本去安装,我的服务器,安装了.net core 3.0.1,和.net core 2.1,以下为core 2.1为例)

  微软官网:https://dotnet.microsoft.com/download/linux-package-manager/rhel/sdk-current

技术图片

(这个是官网的推荐的sdk 默认3.0版本)

寻找对应2.1的版本:https://dotnet.microsoft.com/download/dotnet-core 

https://dotnet.microsoft.com/download/dotnet-core/2.1

执行:sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

执行:sudo yum install dotnet-sdk-2.1

安装.net core运行环境完毕。

3.服务上安装Nginx:

(可以参考:https://www.jianshu.com/p/e1b5ee442a70)

命令:

  curl -o nginx.rpm
  rpm -ivh nginx.rpm
  yum install nginx

至此,安装完毕,外网访问服务器,访问80端口,如图说明,Ngnix部署成功,并完成了监听端口(80)。

技术图片

打开服务器的目录 /etc/nginx

技术图片

把配置文件拷贝下来到本地编辑后上传,或者直接在服务器上编辑(不推荐),在本地编辑时,注意使用编码是:utf-8 无bom的格式。

a.    nginx.conf  

技术图片

如果nginx.conf和图上没什么区别,就不用管,如果是不同,参考或复制下面的

worker_processes  1; 这个表示nginx运行处理的线程数,推荐使用cpu核数的2倍(https://www.cnblogs.com/aaron-agu/p/8003831.html)

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/8624.html