Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用Jexus 容器化您的 Blazor 应用程序

使用Jexus 容器化您的 Blazor 应用程序

作者头像
张善友
发布于 2020-06-19 03:06:13
发布于 2020-06-19 03:06:13
2.2K0
举报
文章被收录于专栏:张善友的专栏张善友的专栏

在本文中,我们将介绍如何将 Blazor 应用程序放入Jexus 容器以进行开发和部署。我们将使用 .NET Core CLI,因此无论平台如何,使用的命令都将是相同的。

Blazor 托管模型

Blazor 有两个托管模型,它们的要求不同,本文主要基于WebAssembly模型介绍容器化。

  • Blazor WebAssembly:一个 Web 框架,用于在浏览器中使用 WebAssembly 运行客户端。
  • Blazor 服务器:运行服务器端并使用 SignalR 与浏览器通信的 Web 框架。

WebAssembly 托管模型的目标是在浏览器中托管整个应用程序。Blazor WebAssembly 应用程序中的项目包括 HTML、JavaScript、.NET 运行时版本和二进制文件。它们都在浏览器中运行,因此您可以将它托管为静态网站。不需要服务器运行时或解释器

Blazor WebAssembly 仍处于预览模式,是最后一个预览版,5.19 将正式发布,因此您必须手动安装模板才能创建 Blazor WebAssembly 应用程序。

dotnet new -i Microsoft.AspNetCore.Components.WebAssembly.Templates::3.2.0-rc1.20223.4

现在,您已经安装了模板,您可以使用以下 .NET CLI 命令创建新的 Web 组装应用程序:

dotnet new blazorwasm -o wasmtest

这将创建一个新的 Blazor WebAssembly 应用程序,名称为"wasmtest"。您可以将"wasmtest" 更改为项目名称。

生成并测试应用后,即可发布应用。运行点网发布命令:

dotnet publish -c Release

你会看到如下输出:

PS C:\workshop\idt2019\wasmtest> dotnet publish -c Release -o publish 用于 .NET Core 的 Microsoft (R) 生成引擎版本 16.5.0+d4cbfca49 版权所有(C) Microsoft Corporation。保留所有权利。

C:\workshop\idt2019\wasmtest\wasmtest.csproj 的还原在 93.3 ms 内完成。 wasmtest -> C:\workshop\idt2019\wasmtest\bin\Release\netstandard2.1\wasmtest.dll wasmtest (Blazor output) -> C:\workshop\idt2019\wasmtest\bin\Release\netstandard2.1\wwwroot wasmtest -> C:\workshop\idt2019\wasmtest\publish\

在这里,你可以看到我们的程序的文件都发布到了路径C:\workshop\idt2019\wasmtest\publish\, 我们的所有成果输出都是静态文件,都放在文件夹wwwroot 目录下:

PS C:\workshop\idt2019\wasmtest\publish> ls wwwroot

目录: C:\workshop\idt2019\wasmtest\publish\wwwroot

Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2020/5/4 12:38 css d----- 2020/5/4 12:38 sample-data d----- 2020/5/4 12:38 _framework -a---- 2020/5/4 12:34 32038 favicon.ico -a---- 2020/5/4 12:34 651 index.html

可以从任何静态web 站点上运行这个文件,我们就使用一个Jexus 容器来运行blazor 应用。Jexus 是一款国产的 Linux 平台上的高性能WEB服务器 和负载均衡网关,以支持 ASP.NET、 ASP.NET CORE、 PHP 为特色, 同时具备反向代理、 入侵 检测等重要功能。 可以这样说, Jexus是 .NET、 .NET CORE 跨平台的最优秀的宿主服务器,如 果我们认为它是 Linux平台 的 IIS ,这并不为过,因为, Jexus 不但非常快,而且拥有 IIS 和 其它 Web 服务器所不具备的高度的安全性,这是政府机构和重要企业对web服务器最必要也是最重要的 品质需求。张志敏同学在维护这个Jexus镜像,得到了Jexus作者宇内流云的认可, Docker Hub 地址: https://hub.docker.com/r/beginor/jexus-x64

我们来创建一个Jexus 托管静态网站的配置wasmtest:

###################### # Web Site: wasmtest.csharpkit.com ########################################

port=80 root=/ /var/www/wasmtest/ hosts= wasmtest.csharpkit.com NoFile=/index.html

UseGZIP=true

创建一个容器打包镜像的Dockerfile:

FROM beginor/jexus-x64:6.2.1.12

COPY ./jexus/wasmtest /usr/jexus/siteconf/wasmtest

COPY ./publish/wwwroot /var/www/wasmtest

CMD [ "jws", "start"]

此文件将拉下jexus 镜像,然后将jexus网站的配置文件复制到容器文件系统中的(默认的jexus 配置文件夹)。它将在每次生成镜像时执行此操作,因此如果你需要对项目进行更改,则需要重新生成镜像。

这就是我们需要启动和运行Blazor WebAssembly静态文件所需的以前,现在我们就来创建一个镜像:

docker build –f ./Dockfile –t geffzhang/wasmtest:lastest .

PS C:\workshop\idt2019\wasmtest> docker build -f .\Dockerfile -t geffzhang/wasmtest:lastest . Sending build context to Docker daemon 29.42MB Step 1/4 : FROM beginor/jexus-x64:6.2.1.12 6.2.1.12: Pulling from beginor/jexus-x64 68ced04f60ab: Already exists 08da89b1ce63: Pull complete e1c7e1fba2a2: Pull complete 7bb8aca5914e: Pull complete Digest: sha256:385f8a80d06dc25cc72e072e57983316c7c4faa5e793825fc3bea3fe09701e0c Status: Downloaded newer image for beginor/jexus-x64:6.2.1.12 ---> d2b984e7898c Step 2/4 : COPY ./jexus/wasmtest /usr/jexus/siteconf/wasmtest ---> 1ffe6bdc10de Step 3/4 : COPY ./publish/wwwroot /var/www/wasmtest ---> a60b338191aa Step 4/4 : CMD [ "jws", "start"] ---> Running in da8c19f7849b Removing intermediate container da8c19f7849b ---> a04cf465b883 Successfully built a04cf465b883 Successfully tagged geffzhang/wasmtest:lastest SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

我们可以运行它:

docker run –name wasm1 –p 80:80 –d geffzhang/wasmtest:lastest

PS C:\workshop\idt2019\wasmtest> docker run --name wasm1 -p 80:80 -d geffzhang/wasmtest:lastest 101ecc49b5913d69300a7554022ecef681760922640fc39faf6195d69e04bb56

这将容器作为守护进程运行,因此他将能够持续运行,直到你停止它。现在我们有了一个静态的Jexus 服务器在端口80上运行应用程序。你可以通过浏览器上看到它:

在生产环境中,我们可以通过Jexus配置更多的操作,上面这些步骤是托管你的Blazor WebAssembly 应用程序在容器中进行开发。

代码参见:https://github.com/BlazorHub/wasmtest

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在 CentOS 上使用 Jexus 托管运行 ZKEACMS
张善友
2017/05/22
2.3K0
在 CentOS 上使用 Jexus 托管运行 ZKEACMS
Centos环境下搭建Asp.NET Core环境和安装Jexus
   .NET Core2.0出来以后,很多公司开始用于实践生产,其中的原因想必大家都明白,最主要的一下几点。 跨平台,能够部署在Linux和Docker容器中 性能优越,测试时Node的20倍左右 社区开始越来越活越,有着很多优秀的开源项目 安装.NET Core 开发环境 添加dotnet 产品Feed,分两步: sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packag
牛嗷嗷
2018/03/30
1.7K0
使用Jexus 5.8.2在Centos下部署运行Asp.net core
这里安装的Jexus不是独立版本,所以需要先安装Mono,Mono只是为了支持Jexus非独立版本的运行,和.net core 没有关系,使用jexus“独立版”,避免安装mono的麻烦。官方网站:https://www.jexus.org/ 系统版本:Cenos7,Mono版本:5.0.1 Stable (5.0.1.1) Mono官方doc:http://www.mono-project.com/download/#download-lin-centos 一.添加Mono仓库到系统 以root身份执行下
晓晨
2018/06/22
1.4K0
Blazor资源大全,很棒的Blazor(1)
Blazor允许您使用C#而不是JavaScript构建交互式Web用户界面。Blazor应用程序由使用C#、HTML和CSS实现的可重用的Web用户界面组件组成。客户端和服务器代码都是用C#编写的,允许您共享代码和库。 更多信息请参阅官方Blazor网站[22]。
用户10786849
2023/10/13
5820
Blazor资源大全,很棒的Blazor(1)
传统.NET 4.x应用容器化体验(2)
上一篇我们基于Windwos Server 2019 with Container初步跑了一个ASP.NET WebForm应用程序。本篇我们来自己编译部署一个ASP.NET MVC应用程序到Windows Container。
Edison Zhou
2021/07/21
1.5K0
传统.NET 4.x应用容器化体验(2)
最终选型 Blazor.Server:又快又稳!
书接上文,昨天我们快速的走了一遍wasm的开发流程(我的『MVP.Blazor』快速创建与部署),总体来说还是很不错的,无论是从技术上,还是从开发上,重点是用C#来开启前端时代,可以开发SPA单页面应用,这个本身就是很奇妙的一件事,因为我有一定的VUE.JS基础,所以入手Blazor.Wasm的话,还是特别快的,可以说是很对脾气的,无论是双向绑定、组件开发、页面模板、生命周期、父子通讯等等等等上,都很契合。
老张的哲学
2022/04/11
6.8K0
最终选型 Blazor.Server:又快又稳!
Blazor资源大全,很棒的Blazor(3)
更新 .razor 文件并立即查看更新,无需重新加载页面。由于无需重新加载任何内容,因此保留了应用程序状态。livesharp.net。
用户10786849
2023/10/13
4770
Blazor资源大全,很棒的Blazor(3)
NET MVC接口服务如何运行在容器中
有些公司内部存在一些NET项目,而公司服务器后期都换成了Linux,若单纯为这一个项目占用一台Windows服务器显得极其浪费,因此需要将NET项目嵌入到Linux服务器中,为了后期方便迁移和运维最好是Docker容器中运行。
欢醉
2023/02/20
1.2K0
Blazor资源大全,很棒的Blazor(2)
.NET Foundation提供的Blazor应用程序构建工作坊,Blazzing Pizza。
用户10786849
2023/10/13
8821
Blazor资源大全,很棒的Blazor(2)
VSCode下配置Blazor环境 & 断点调试Blazor项目
Blazor是一种用于构建交互式Web UI的.NET框架,它可以让你使用C#、Razor和HTML进行Web开发,而不需要JavaScript。在这篇文章中,我们将介绍如何在VSCode中配置Blazor环境,并推荐一些有用的插件。
码事漫谈
2024/12/31
1570
VSCode下配置Blazor环境 & 断点调试Blazor项目
腾讯云-ASP.NET Core+Mysql+Jexus+CDN上云实践
云服务器(Cloud Virtual Machine,CVM)为您提供安全可靠的弹性计算服务。 只需几分钟,您就可以在云端获取和启用 CVM,来实现您的计算需求。随着业务需求的变化,您可以实时扩展或缩减计算资源。 CVM 支持按实际使用的资源计费,可以为您节约计算成本。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
痴者工良
2019/08/08
3.4K0
Blazor WebAssembly 修仙之途 - 初尝
Blazor 是一个可是使用 .NET/C# 来编写交互式客户端的 Web UI 框架,在官网有一句话概括 “Build client web apps with C#”。在 Blazor 里面有三个比较重要的概念:
晓晨
2020/06/02
3.6K0
【重榜?】.NET 6 Preview 1 开箱上手!带你尝试新版本更新!
最近 .NET 6 Preview 1 发布了,.NET 统一是此版本的核心。大家可以读一下原文博客:
痴者工良
2021/04/26
3.8K0
Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持
Jexus 是一款运行于 Linux 平台,以支持  ASP.NET、PHP 为特色的集高安全性和高性能为一体的 WEB 服务器和反向代理服务器。最新版 5.8.2 已经发布,有如下更新: 1,现在大部分网站已经部署HTTPS,大家对于安全越来越重视,顺应潮流新增HTTPS多证书支持,每个网站都可以配置自己独立的SSL证书,现在有2种方式支持网站部署HTTPS。    A、添加全服务器使用的SSL配置:如果需要,可以添加一个ssl配置为所有没有单独配置ssl的网站提供共享,这个配置,对支持泛域名的证书提供了
张善友
2018/01/19
1.5K0
Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持
传统.NET 4.x应用容器化体验(5)
前面几篇都是基于阿里云ECS直接玩的,有童鞋问直接用Windows Server 2019可以玩不,本篇就为你介绍一下如何给Windows Server 2019配置Docker环境。
Edison Zhou
2021/07/29
1.4K0
传统.NET 4.x应用容器化体验(5)
.NET Conf 2019 大会上发布.NET Core 3.0
北京时间今天凌晨如期在.NET Conf 上发布.NET Core 3.0,Keynotes 由Scott Hunter 主演,主要围绕.NET Core 3.0的新特性和社区展开。
梁规晓
2019/09/25
6690
.NET Conf 2019 大会上发布.NET Core 3.0
Blazor 修仙之旅 - Ant Design of Blazor
这是《Blazor 修仙之旅》的第三篇,前面两分别是《初次尝试》、《组件与数据绑定》,直接到这里上 Ant Design 确实连不起来,跨度比较大,其实我也是在边学边写,看的是官方文档,我觉得中间这部分重复写博客的意义不大,所以我建议去看官方文档,传送门:点我。如果看过我的前两篇,我建议您从这里开始看:点我。不用每篇都深刻理解,但需要有一个基本概念。好了,下面进入正题。
晓晨
2020/06/04
1.2K0
Blazor 修仙之旅 - Ant Design of Blazor
Blazor VS 传统Web应用程序
Blazor是Microsoft团队开发的单页面应用程序(SPA)框架,它是与React,Angular和Vue.js有相同之处,但是它使用的是C#而不是JavaScript。它将C#带入SPA领域,并向传统的Web应用程序框架(如ASP .NET Web窗体和ASP .NET Core MVC)挑战,来构建Web应用程序。本文讨论了SPA和传统Web应用程序之间的选择,并说明了服务器端渲染和客户端渲染之间的区别。
全球技术精选
2021/01/09
4.3K0
Blazor VS 传统Web应用程序
C#程序员的福音来啦,Blazor框架概览
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
乐百川
2019/11/26
3.2K0
.NET Core容器化@Docker
温馨提示:本文适合动手演练,效果更佳。  1. 引言 我们知道. NET Core最大的特性之一就是跨平台,而对于跨平台,似乎大家印象中就是可以在非Windows系统上部署运行。而至于如何操作,可
圣杰
2018/01/11
1.7K0
.NET Core容器化@Docker
推荐阅读
相关推荐
在 CentOS 上使用 Jexus 托管运行 ZKEACMS
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文