阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

426次阅读
没有评论

共计 3074 个字符,预计需要花费 8 分钟才能阅读完成。

前言

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

有关如何使用 Nginx 进行部署,请参见本人的另一篇文章:http://www.linuxidc.com/Linux/2016-08/133940.htm

目录

  • 安装 Liunx DotNet 环境
  • 新建一个 Web 项目,并发布
  • 使用 Jexus 进行反向代理

安装 Linux DotNet 环境

安装 dotnet 环境参见官方网站 https://www.microsoft.com/net/core#ubuntu。

新建一个 WebApp 项目,并发布

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

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

主要是用以下几个命令:

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

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

新建了应用程序之后,使用 dotnet restoredotnet run 命令来测试一下我们的应用程序。
我们打开浏览器输入 http://localhost:5000,来看一下效果。
Asp.Net Core 发布和部署(Linux + Jexus)
可以看到已经成功运行了。

如果发布应用程序,我们需要使用 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 运行时环境,可以看到里面的文件夹包含 win7linxumac os 等,说明我们这个应用程序是跨平台的。views 这个文件夹存放的就是我们的 mvc 的视图文件。wwwroot 文件夹,存放的是前端使用的 js 库,css 样式表,和图片等。

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

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

使用 Jexus 进行反向代理

  • Jexus 介绍
  • 安装 Jexus
  • 配置 Jexus
  • 注意事项

Jexus 介绍

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

官网:http://www.jexus.org/
张善友的介绍:http://www.linuxidc.com/Linux/2012-05/60169.htm

安装 Jexus

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

cd /tmp

wget linuxdot.net/down/jexus-5.8.1-x64.tar.gz

tar -zxvf jexus-5.8.1-x64.tar.gz

sudo mv jexus /usr

sudo rm -rf /tmp/jexus*

使用以下命令来启动 jexus

cd /usr/jexus

sudo ./jws start

打开浏览器输入 http://localhost 如果看到下面这个异常界面,代表运行成功了。
Asp.Net Core 发布和部署(Linux + Jexus)

配置 Jexus

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

1、** 端口转发 **

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

2、** 反向代理 **

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

还有一个很重要的优势就是 Web 中的缓存,会在代理服务器这一步来处理。大家看下面这个图:
Asp.Net Core 发布和部署(Linux + Jexus)

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

按照上述方式安装完 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 来访问我们的站点了。
Asp.Net Core 发布和部署(Linux + Jexus)

注意事项

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

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

nohup dotnet HelloWebApp.dll &

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

下一篇将讲解如何在 Linux 中使用 Docker 进行部署,以及如何脱离命令行宿主给我们的 dotnet 程序创建一个守护进程,及宕机失败自动重启等等。。。请看 http://www.linuxidc.com/Linux/2016-08/133942.htm。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/133941.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3074字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7960432
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
免费领取huggingface的2核16G云服务器,超简单教程

免费领取huggingface的2核16G云服务器,超简单教程

免费领取 huggingface 的 2 核 16G 云服务器,超简单教程 前言 HuggingFace.co...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...