2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Asp.Net Core 发布和部署(Linux + Jexus )

Asp.Net Core 发布和部署(Linux + Jexus )

时间:2021-06-14 00:54:45

相关推荐

Asp.Net Core 发布和部署(Linux + Jexus )

前言

在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在 core 中对我们的已经完成的程序进行发布和部署。

有关如何使用 Nginx 进行部署,请参见本人的另一篇文章:

/savorboard/p/dotnet-core-publish-nginx.html

目录

安装 Liunx DotNet 环境

新建一个 Web 项目,并发布

使用 Jexus 进行反向代理

安装 Linux DotNet 环境

安装 dotnet 环境参见官方网站/net/core#ubuntu。

新建一个 WebApp 项目,并发布

在 Core 项目中,我们使用dotnet new -t WebApp命令和创建一个新的空的 Web 应用程序,然后使用dotnet resotre还原 Nuget。

主要是用以下几个命令:

mkdir HelloWebApp这个命令是创建一个名为 HelloWebApp 的文件夹。

dotnet new -t Web这个命令是使用 Web 模板来新建一个 WebApp 的 Mvc 应用程序。

新建了应用程序之后,使用dotnet restoredotnet run命令来测试一下我们的应用程序。

我们打开浏览器输入http://localhost:5000,来看一下效果。

可以看到已经成功运行了。

如果发布应用程序,我们需要使用dotnet publish命令,通过使用--help参数可以看到一些可以使用的命令参数。

-f|--framework <FRAMEWORK>Target framework to compile for-r|--runtime <RUNTIME_IDENTIFIER> Target runtime to publish for-b|--build-base-path <OUTPUT_DIR> Directory in which to place temporary outputs-o|--output <OUTPUT_PATH>Path in which to publish the app--version-suffix <VERSION_SUFFIX> Defines what `*` should be replaced with in version field in project.json-c|--configuration <CONFIGURATION> Configuration under which to build--native-subdirectory Temporary mechanism to include subdirectories from native assets of dependency packages in output--no-build Do not build projects before publishing

我们运行dotnet publish -o ~/WorkSpace/publish发布到 publish 文件夹,当看到Published 1/1 projects successfully的时候,说明已经发布成功了。

PS: 如果提示没有安装 NPM 工具,运行sudo install apt-get npm -g,先安装 NPM。

如果提示没有 bower 管理工具,使用sudo npm install bower -g安装 bower。

如果提示没有 gulp 构建工具,使用sudo npm install gulp -g安装 gulp。

如安装过程中无响应,请科学上网后再安装。

发布之后 publish 文件夹里面的子文件夹有必要说明一下。

appsettiong.json 应用程序的配置文件refs 应用程序引用的.net fx系统程序集runtimes 运行时环境,可以看到里面的文件夹包含 win7、linxu,mac os 等,说明我们这个应用程序是跨平台的。views 这个文件夹存放的就是我们的 mvc 的视图文件。wwwroot 文件夹,存放的是前端使用的 js 库,css 样式表,和图片等。

然后使用dotnet HelloWebApp.dll测试发布过后的程序是否运行正常。

使用 Jexus 进行反向代理

Jexus 介绍

安装 Jexus

配置 Jexus

注意事项

Jexus 介绍

Jexus 是一款国产的,运行在 Linux 上的 Web 服务器。 具体介绍我就直接放链接了。

官网:/

张善友的介绍:/shanyou/archive//01/23/Jexus.html

安装 Jexus

在命令行窗口中,使用以下命令来安装一个绿色版的 jexus(无需另行安装 Mono)。

cd /tmpwget /down/jexus-5.8.1-x64.tar.gztar -zxvf jexus-5.8.1-x64.tar.gzsudo mv jexus /usrsudo rm -rf /tmp/jexus*

使用以下命令来启动 jexus

cd /usr/jexussudo ./jws start

打开浏览器输入http://localhost如果看到下面这个异常界面,代表运行成功了。

配置 Jexus

有两种方式可以在 Jexus 上访问我们的 Web 应用程序。 即端口转发和反向代理的方式,下面是两种方式的配置方法。

1、** 端口转发 **

端口转发,即把 Jexus 配置的端口直接转发到我们的 程序中,即转发到 Kestrel 去处理。

2、** 反向代理 **

反向代理,即把我们应用程序的一部分路径交给 Jexus 去处理,比如静态文件,图片等。另外一部分动态的交给Kertrel 来处理。这样可以降低我们的后端 Kertrel 的压力。

还有一个很重要的优势就是 Web 中的缓存,会在代理服务器这一步来处理。大家看下面这个图:

至于怎么样添加代理服务器可以识别到的缓存,可以关注我后面发表的博客文章。

按照上述方式安装完 Jexus 之后,配置文件路径在/usr/jexus/siteconf/default文件中。

切换工作目录到/usr/jexus/siteconf/,使用sudo gedit default命令打开 default 文件。

修改内容为如下:

port=80# Jexus 默认访问的工作目录root=/ /home/yxd/Workspace/publish # 下面这种方式是反向代理。我设置的路径是"/"即根目录,大家可以根据# 需要设置为非静态的路径reproxy=/ http://localhost:5000/# 下面这种方式是使用端口转发AppHost.Port=5000# 注意: 以上两种方式配置一种即可。

保存并退出。 然后使用sudo ./jws restart命令来重启一下。

然后我们打开浏览器 输入http://localhost,发现此时已经通过 jexus 来访问我们的站点了。

注意事项

1、在使用 jexus 代理访问站点的时候, 保持命令dotnet run HelloWebApp.dll的命令行窗口必须开启。

2、可以使用下面的命令来让一个命令行运行在后台进程中。

nohup dotnet HelloWebApp.dll &

这个时候你就可以把命令行窗口关掉了。

下一篇将讲解如何在 Linux 中使用 Docker 进行部署,以及如何脱离命令行宿主给我们的dotnet程序创建一个守护进程,及宕机失败自动重启等等。。。 请持续关注。

相关文章:

Core 1.0 入门——了解一个空项目

Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

.NET Core 1.0、 Core 1.0和EF Core 1.0简介

云服务器下 Core 1.0环境搭建(包含mono与coreclr)

使用VS Code开发 Core 应用程序

dotnet run是如何启动 core站点的

Core提供模块化Middleware组件

“dotnet restore"和"dotnet run"都做了些什么?

探秘 dotnet run 如何运行 .NET Core 应用程序

.NET Portability Analyzer 已开源

Core的配置(1):读取配置信息

Core的配置(2):配置模型详解

.NET Core 1.0 RC2 历险之旅

使用VS Code开发 调试.NET Core 应用程序

让我们Core在一起: Core & .NET Core

.NET Core VS Code 环境配置

官方博客明确了 .NET Core RC2/RTM 时间表

.NET Core全新的配置管理[共9篇]

利用记事本创建一个 Core RC2 MVC应用

微软.NET 正式劈腿成功,横跨所有平台

.NET Core 1.0 CentOS7 尝试

解读发布:.NET Core RC2 and .NET Core SDK Preview 1

[.NET Core].NET Core R2安装及示例教程

Core 开发-中间件(Middleware)

结合Jexus + Kestrel 部署 core 生产环境

通过Jexus 部署 dotnetcore版本MusicStore 示例程序

Core 中文文档 第一章 入门

用 Visual Studio Code 在 macOS 上创建首个 Core 应用程序

用 Visual Studio 和 Core MVC 创建首个 Web API

用 Visual Studio 发布一个 Azure 云 Web 应用程序

Core MVC 与 Visual Studio 入门

第二章指南(4.2)添加 Controller

DotNet Core 介绍

core 中间件详解及项目实战

教你实践 Core Authorization(免看文档教程)

core 使用 Redis 和 Protobuf 进行 Session 缓存

core 中间件详解及项目实战

第二章 指南(4.3)添加 View

dotnet core开发体验之开始MVC

dotnet core 开发体验之Routing

聊聊 Core默认提供的这个跨平台的服务器——KestrelServer

简析.NET Core 以及与 .NET Framework的关系

.NET Core 使用Dapper 操作MySQL

使用 CommandLineApplication 类创建专业的控制台程序

简析 .NET Core 构成体系

.NET Core也可以使用MongoDB了

.NET Core & Core 1.0在Redhat峰会上正式发布

.NET Core:面向未来的开源跨平台开发技术

微软说它深爱着Linux,现在它用行动证明了

移植.NET Core计划,整合各平台变得更简单了!

Core 介绍

通过几个Hello World感受.NET Core全新的开发体验

Core 运行原理剖析1:初始化WebApp模版并运行

.NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

原文地址:/savorboard/p/dot-net-linux-jexus.html

.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

赞赏

人赞赏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。