在Linux+Jexus中发布和部署Asp.Net Core

目录
  • 安装 Linux DotNet 环境
  • 新建一个 WebApp 项目,并发布
  • 使用 Jexus 进行反向代理
    • Jexus 介绍
    • 安装 Jexus
    • 配置 Jexus
    • 注意事项

安装 Linux DotNet 环境

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

新建一个 WebApp 项目,并发布

在 Asp.Net 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 服务器。 具体介绍我就直接放链接了。

官网: http://www.jexus.org/

安装 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 如果看到下面这个异常界面,代表运行成功了。

配置 Jexus

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

  • 1、** 端口转发 **

端口转发,即把 Jexus 配置的端口直接转发到我们的 asp.net 程序中,即转发到 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 &

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Asp.Net Core 发布和部署( MacOS + Linux + Nginx )

    前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在Linux中,对 Asp.Net Core 的程序进行发布和部署. 目录 新建一个 WebApp 项目 发布到 Linux,Mac OS 使用 Nginx 进行反向代理 新建一个 WebApp 项目 在 Asp.Net Core 项目中,我们使用 dotnet new -t WebApp 命令和创建一个新的空的 Web 应用程序. 以下是我在 Mac 中的截图: 主要是用以下几个命令: mkdir He

  • 在MacOS+Linux+Nginx中发布和部署Asp.Net Core

    目录 新建一个 WebApp 项目 发布到 Linux,Mac OS 使用 Nginx 进行反向代理 Mac OS Linux(Ubuntu) 注意事项 新建一个 WebApp 项目 在 Asp.Net Core 项目中,我们使用 dotnet new -t WebApp 命令和创建一个新的空的 Web 应用程序. 以下是我在 Mac 中的截图: 主要是用以下几个命令: mkdir HelloWebApp 这个命令是创建一个名为 HelloWebApp 的文件夹. dotnet new -t W

  • Centos7+Docker+Jenkins+ASP.NET Core 2.0自动化发布与部署的实现

    前言 Docker一直很火热,一直想把原本的Jenkins自动部署工具搬到Docker上面,无奈今年一直忙于各种事情,迟迟未实施这个事情,正好迎来了dotnet core 2.0 的正式发布,升级项目的同时,顺便直接将Jenkins搬到Docker上.为什么要写这篇文章呢?因为找过相关的资料,大多数文章都是基于Ubuntu 安装.net core 又或者 GitLab 进行持续集成 自动部署等等等,并未有人尝试过Centos7.3 上部署 Jenkins 并且 构建 ASP.NET CORE 2

  • Asp.net Core 初探(发布和部署Linux)

    前言 俗话说三天不学习,赶不上刘少奇.Asp.net Core更新这么长时间一直观望,周末帝都小雨,宅在家看了下Core Web App,顺便搭建了个HelloWorld环境来尝尝鲜,第一次看到.Net Web运行在Linux上还是有点小激动(只可惜微软走这一步路走的太晚,要不然屌丝们也不会每每遇见Java VS .Net就想辩论个你死我活). 开发环境和部署环境 Windows 10.VS2015 Update3.安装.Net Core SDK.DotNetCore.1.0.1-VS2015T

  • 在Linux+Jexus中发布和部署Asp.Net Core

    目录 安装 Linux DotNet 环境 新建一个 WebApp 项目,并发布 使用 Jexus 进行反向代理 Jexus 介绍 安装 Jexus 配置 Jexus 注意事项 安装 Linux DotNet 环境 安装 dotnet 环境参见官方网站 https://www.microsoft.com/net/core. 新建一个 WebApp 项目,并发布 在 Asp.Net Core 项目中,我们使用 dotnet new -t WebApp 命令和创建一个新的空的 Web 应用程序,然后

  • Linux系统Docker 部署 ASP.NET Core应用的流程分析

    一.系统环境 1.腾讯云轻量应用服务器CentOS7.6 二.操作流程及途中遇到的问题 1.SSH方式远程Linux ssh <username>@<IP address or domain name> 如果遇到下图问题: 出现这个问题的原因:known_hosts是记录远程主机的公钥的文件,之前重装个系统,而保存的公钥还是未重装系统的系统公钥,在ssh链接的时候首先会验证公钥,如果公钥不对,那么就会报错 解决方法:使用shh-keygen 命令ssh-keygen -R IP,执

  • Linux CentOS下docker部署Asp.Net6 Core

    1.项目设置 设置dockerfile属性为"始终复制", 修改dockerfile文件内容为: FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /web COPY . . EXPOSE 80 EXPOSE 443 FROM base AS final ENTRYPOINT ["dotnet", "OneZhanMVC.dll"] ps:若项目没有dockerfile右键项目,点击

  • 部署ASP.NET Core程序到Linux系统

    目录 一.前言 二.安装运行时环境 1.在线安装 2.离线包安装 三.上传文件 四.部署 1.使用Kestrel启动 2.使用Nginx作为反向代理 一.前言 这篇文章我们将讲解如何将ASP.NET Core 程序部署到Linux.这里我们使用的是虚拟机里面安装的Centos7.这里的ASP.NET Core程序,以上篇文章中发布的框架依赖文件为例进行讲解. 二.安装运行时环境 1.在线安装 我们只是在Linux系统上面部署应用程序,所以只需要安装ASP.NET Core Runtime即可.在

  • Linux CentOS下docker部署Asp.Net Core(.Net6)

    1.项目设置 设置dockerfile属性为"始终复制", 修改dockerfile文件内容为: FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /web COPY . . EXPOSE 80 EXPOSE 443 FROM base AS final ENTRYPOINT ["dotnet", "OneZhanMVC.dll"] ps:若项目没有dockerfile右键项目,点击

  • ubuntu16.4下用jexus部署ASP.NET Core环境

    上篇文章介绍了下用vs发布部署到iis环境,今天说下ubuntu下部署asp.net core,不需要安装.net core sdk,自带运行时方式部署,利用jexus服务器转发请求到asp.net core. 1.部署准备环境 vmware虚拟机(其他也可以) ubuntu16.04镜像 2.发布环境 win10系统 vs2015 update3 或vs code (也可以用dotnet new -t web 命令创建项目) dotnet sdk DotNetCore.1.0.0-SDK.Pr

  • Linux上使用Docker部署ASP.NET Core应用程序

    一.创建 1.创建应用程序 使用ASP.NET Core创建一个MVC应用程序,并修改Home控制器Index视图代码: @{ ViewData["Title"] = "Home Page"; } <div class="text-center"> @*<h1 class="display-4">Welcome</h1> <p>Learn about <a href=&qu

  • 部署ASP.NET Core程序到Windows系统

    目录 一.创建项目 二.发布项目 1.框架依赖 2.独立部署 三.部署 1.配置部署环境 2.控制台方式部署 3.部署到IIS 4.独立部署 一.创建项目 本篇文章介绍如何将一个ASP.NET Core Web程序部署到Windows系统上.这里以ASP.NET Core WebApi为例进行讲解.首先创建一个ASP.NET Core WebApi项目,使用默认的Values控制器,这里使用Visual Studio 2019创建一个ASP.NET Core 3.1d的WebApi项目. 创建新

  • 使用Docker部署ASP.NET Core程序

    一.前言 这篇文章介绍如何将一个ASP.NET Core应用程序在Docker中进行部署.开发工具使用的是Visual Studio 2019和VS Code. 二.使用Docker部署 我们选择新建一个MVC项目进行演示. 1.新建MVC项目 模板选择ASP.NET Core Web应用程序,如下图所示: 输入项目名称,点击“创建”: 选择Web应用程序(模型视图控制器),并勾选“启用Docker支持”,如下图所示: 然后会检查Docker环境是否安装,如下图所示: 这样一个MVC项目就创建完

随机推荐