So Easy - 在Linux服务器上部署 .NET Core App

  .NET Core 是微软提供的免费、跨平台和开源的开发框架,可以构建桌面应用程序、移动端应用程序、网络应用程序、物联网应用程序和游戏应用程序等。如果你是 Windows 平台下的 dotnet 开发人员的话,使用 .NET core 可以很轻松就设置好任何 Linux 和类 Unix 操作系统下的开发环境。本文将会逐步带着大家在Linux上部署.NET Core应用程序。

一.环境准备

  • 服务器:阿里云64位CentOS 7.4.1708版本;
  • 客户端:Windows 10;
  • SFTP客户端:FileZilla;用来进行文件传输;
  • SSH工具:Xshell 6;用来在Windows 上远程访问CentOS;

二.在Linux上安装.NET 环境

使用如下命令注册Microsoft需要的依赖环境,该命令类似于Window上的环境变量,它指向了微软的环境源,地址中的对每个系统是不一样,所以我们要斟酌一下的Linux系统是什么,再去拉取。

wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb

比如你当时装了.NET Core3.0,但是呢!微软过了几天又出了.NET Core 3.1 ,这个时候就需要更新你这个配给的配置,通过以下命令。

yum update

yum update命令会重新拉取下,随后重新做配置,但你的dotnet sdk不会受任何影响,随后安装dotnet sdk。

yum install dotnet-sdk-3.1

安装完会出现以下截图,随后我们可以通过dotnet--info来判断是否安装成功。

此时环境就运行环境就搭建完璧了~

二.使用FileZilla工具向服务器推送应用程序

值得一提的是任何服务器的ftp端口都是22,这个是必须要注意的,否则会一直连接失败。

此时我们向服务器传送了发布文件,如果不出意外我们可以直接在Liunx上看到。通过Ls 、Cd /完成查看。

随后我们找到了以dll结尾并且是你解决方案的名称,随后我们直接dotnet 命令来进行启动项目。

三.启动应用程序

   此时我们可以看到我们的内网是以5000端口启动的,这得益于我们直接将.NET Core直接设置原因,当然我们如果要在阿里云上公网IP的安全映射进行设置,在此之前我们要测试一下内网是否正常,常用的命令是curl,不够这个命令需要安装,在Centos和ubuntu安装命令是不一样的。具体命令如下:

apt-get install curl  //ubuntu的命令

yum  install curl   //Centos的命令

关于Curl这个命令很强大,这个就不这里详谈了,安装完成之后就可以使用这个命令了,最后我们测试内网看看是否正常。

此时发现内网已经打通,现在我们通过阿里云公网IP对内网进行映射。在阿里云中的安全组中,找到安全组规则,添加一条映射。放开所有IP,这样就ok了,具体如下。

  此时,试着激动的双手打开手机试着去访问....OK,Nice..

.

四.进程守护  

  不过一个尴尬的事情出现了,我们只是通过dotnet命令启动了项目,但是我们的XShell关闭你的应用程序就会关闭,此时我们就需要进程守护了。这样就可以让你的应用程序每时每刻都可以为你服务。Supervisor是Python做一个client/server服务,是Linux/Unix双系统下的一个进程管理工具。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。通过这里你应该就会明白我们会干什么,我们会尝试着关闭Xshell,看看它会不会帮我们去重启应用程序,如果可以正常访问,那么你的进程守护配置成功!好吧废话不多说。

  我们首先需要在Linux系统上安装 Supervisor ,在安装它之前,我们需要安装Python 包。

yum install python-setuptools

  随后我们在安装Supervisor,执行结果如下图。

easy_install supervisor

  随后创建几个文件夹,包括supervisor,在这个文件夹中包含了supervisor的一切配置。包含了进程配置文件(也就是大概你想让这个进程去干什么?去执行什么命令?在什么目录下?下面我们会逐一说明下配置文件的各个节点)以及supervisor本身监听服务的配置。

4.1 在etc文件夹下新建文件夹supervisor

mkdir /etc/supervisor

4.2 在supervisor文件夹下新建文件夹conf.d

mkdir /etc/supervisor/conf.d

4.3 生成supervisord.conf 配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

4.4 定位到文件夹下修改配置文件:

cd /etc/supervisor
vim  supervisord.conf

  改变这个路径只是为了能够找到我们的conf.d文件夹中我们自定义的配置文件。conf.d中是我们自己创建的。所以要进行改变。我们在这个文件内容的最下面,可以看到有一个included标签,这个就是我刚才所说的。它默认是这个样子,从内容可以看出是让我们进行修改的。

  修改前的内容如下:

;[include]
;files = relative/directory/*ini

  修改后的内容如下:

[include]
files = conf.d/*.conf

这个时候supervisord的配置已经结束了,那么就剩你的应用程序级别的配置文件了。上述的步骤其实都可以通过FileZilla工具实现,这样更好的去编辑。

4.5 创建应用程序级别配置文件

[program:AspNetCore_Cookie]
command=dotnet AspNetCore_Cookie.dll
directory=/home/publish
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/HelloWebApp.err.log
stdout_logfile=/var/log/HelloWebApp.out.log

对于上述的配置文件我做了如下解释,当然有错误的话可以纠正,毕竟是根据我对鸟语的理解不是很...emmm

command= 要执行的命令,在.NET Core 应用程序中 我们都是使用dotnet 命令来启动应用程序的
directory= 命令执行的目录 比如你的publish 在某个文件夹  那你就写哪里
environment= 环境变量   ASP.NET Core的环境变量 可能是有的时候需要linux管理员去访问,不过我是root,这个我是不太懂
user= 进程执行的用户身份 这里写的root
stopsignal=INT 这个都没人动  我也不动 emmm
autostart= 是否自动启动 
autorestart= 是否自动重启
startsecs= 自动重启间隔
stderr_logfile= 标准错误日志
stdout_logfile= 标准输出日志

就现在,我们的配置已完毕,如果你是按照上方进行配置的,那么你肯定是没有问题的。

4.6 启动进程守护服务

运行 supervisord -c /etc/supervisor/supervisord.conf 看看是否包报错信息,如果没有则配置成功。随后我们直接启动Supervisord服务。

sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf

并且我们查看进程看看我们刚才的应用程序级别配置是否有效。

现在配置一切成功,去打开你的网站吧!,关闭你的XShell 或者 云端在线远程,这个时候再去试着访问你的网站。ok没问题。

原文地址:https://www.cnblogs.com/ZaraNet/p/12064008.html

时间: 2024-07-31 09:58:13

So Easy - 在Linux服务器上部署 .NET Core App的相关文章

零基础在Linux服务器上部署javaweb项目

本教程使用的工具下载链接:http://pan.baidu.com/s/1sl1qz2P 密码:43pj 一.安装JDK 1.首先要查看服务器的系统版本,是32位还是64位 [plain] view plain copy #getconf LONG_BIT 64 2.下载64位版本的jdk 下载地址:http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html 版本:jdk-8u91-Lin

linux服务器上部署java Web项目

一.安装jdk 1) 首先卸载openJDK,安装sun公司的jdk: 打开linux服务器,命令如下: ssh 用户名@ip地址 查看当前已安装的安装java相关的软件,命令如下: 说明:grep这个命令在这里相当于sql里面的where,起过滤的作用. 删除openJDK,命令如下,删除完了之后,然后按向上方向键,查看是否都已经删除完毕. 2)安装JDK,创建JDK安装路径( /usr/local/ ),并在路径下建java文件夹. 16分51秒视频 说明:yum和wget分别是两个常用的命

linux服务器上部署war包

第一步:Export War file,打成war包项目右键 -> Export -> WAR file -> 输入生成war包路径 -> finish 第二步:SSH连接服务器主机:xxxxxxxxxxxx账号:username密码:password 第三步:将war包放到/gxxj/apache-tomcat-6.0.44-ins 第四步:先关闭tomcat(shutdown.sh),不然war会自动解压,始终删不掉文件夹cd /gxxjcd apache-tomcat-6.0

linux的tomcat服务器上部署项目的方法

在tomcat服务器上部署项目的前提,是我们已经准备好了tomcat服务器.在CentOs环境下部署JavaWeb环境,部署tomcat服务器在前面的文章中已经总结过了,可以参考以前文章. 一  tomcat服务器修改端口 tomcat服务器配置好以后,默认是8080端口,为了方便访问,我们将端口修改为80端口.比如, tomcat安装在/usr/local/tomcat目录下,利用命令 #cd /usr/local/tomcat/conf #ls 可以tomcat的conf目录下的文件,端口定

Linux服务器上的tomcat中部署web项目

首先了解一下下面几个概念,讲得不太准确: 1.JVM JVM是class以及jar(实际上就是很多个class压缩在一起)的运行环境,特征就是java和javaw命令,通过这两个命令,你可以执行class和jar文件.你可以通过-classpath参数指定你需要加载的jar文件 2.JDK JDK就是JAVA的命令行开发环境,内置了JVM,特征就是javac命令,这个命令允许你将.java源文件批量或者单个编译成.class文件,从而可以通过JVM的java命令执行.在编译时你可以通过-clas

Dell Omsa在Linux服务器上安装部署

前言 本页详述了在一台Linux(RHEL6.4 x86_64)服务器上部署安装OMSA的通用做法,包括OMSA软件的获取方法和安装步骤. 演示环境: PowerEdge R620, RHEL 6.4 x86_64 OMSA所必须的关联安装包的安装 安装OMSA之前,我们必须确保OMSA安装所需的一些先决安装包已经安装,它们包括: libcmpiCppImpl0libwsman1sblim-sfcbsblim-sfccopenwsman-clientopenwsman-server 其中sbli

使用java service wrapper将项目部署到linux服务器上

最近有需求是将java项目部署到linux服务器上作为服务端程序,最后经过测试成功.本着分享精神将总结出来的路子分享给大家,如果不明白的地方可以在下边留言,谢谢. 将java项目部署到linux服务器 1.      首先从官网下载http://wrapper.tanukisoftware.com/doc/english/download.jsp,注意下载的文件为Community列中的(PS:其他版本需要序列号) 2.      将写好的java项目打成jar包,待用 3.      将下载好

ireport部署到Linux服务器上遇到的问题解决

ireport报表在本地Windows环境运行正常,一旦部署到Linux环境上出现了如下问题: 1.打开报表,后台直接报net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '仿宋' is not available to the JVM. See the Javadoc for more details...错误. 这个问题是之前以为是Linux环境未安装相应字体导致,但在Linux上安装相应字体后,仍然报错. 最初的解决

在linux服务器上发布web应用的完整过程

首先你要有一个完整的web应用的小Demo,一个简单的demo就可以了,但是要涉及到数据库,笔者这里简单的模拟一个登陆的过程. 在本地测试,访问项目: 键入账号密码,点击登陆: 就是这么个简单的动作,下面把它部署到linux服务器上,在linux服务器上需要安装jdk(1.8).tomcat8.mysql.这里先用本机的虚拟机里的linux做模拟,后边再部署到真正的服务器上,这里使用的linux是CentOS6.使用Xshell连接安装好的linux系统,点击Xftp工具,将所需的安装包上传到服