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

ASP.NET Core 是微软的全新的框架。这一框架的目标 ︰

  1. 跨平台
  2. 针对云应用优化
  3. 解除 System.Web 的依赖。 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS:

1) 模块化实现 2) 一切都尽可能的-异步 3) 依赖关系注入

       微软已经如期发布了.NET Core R2, 具体参见文章《微软.NET Core RC2正式发布,横跨所有平台》,现在可以放心的基于.NET Core 构建 ASP.NET Core 。那么问题就来了,生产环境我们如何部署呢?

  ASP.NET Core 的运行环境由新开发的 Kestrel Server 负责,IIS 退回到 HTTP 的侦听器的角色,微软也特别为了这个需求开发了 IIS Platform Handler,以处理 HTTP 与运行环境之间的信息转发工作,微软官方推荐在Linux服务器上使用Nginx,Haproxy等代理Kestrel Server,具体参考 http://weblog.west-wind.com/posts/2016/Jun/06/Publishing-and-Running-ASPNET-Core-Applications-with-IIS。

需要安装AspNetCoreModule(安装 ASP.NET Core Server Hosting Bundle 或者.NET Core SDK时会装上), AspNetCoreModule是一个native IIS module。Jexus 5.8.1 版本的端口“转发”功能也类似于IIS 的实现方式,通过端口转发方式将Kestrel 保护起来,又可以高性能运行。Jexus的实现方式上刘冰的博客《为支持ASP.NET5跨平台,Jexus再添新举措》进行了解释。

        下面我们来介绍下怎么设置通过Jexus 把asp.net core 的请求转发给Kestrel Server来处理。我假设你已经把asp.net core rc2 的网站准备好了,我这里演示的就是我的一个实验站点“Hello World”, 运行在Azure上的Centos 7.0上,服务端口是127.0.0.1:5000 。

在jexus上为之新建一个网站,在这个网站的配置文件中加一行: AppHost.Port=5000 通过以上处理,访问jexus的这个网站,就会把请求转发到对应的应用上。下面是我的示例dotnetcore,配置文件放在/usr/jexus/siteconf,创建一个网站叫做dotnetcore:

port=5001 hosts=*

AppHost.Port=5000 

通过 5001 端口转发到 5000端口,配置非常简单,这时的jexus也是一个侦听和数据转发的角色。当然,作为服务器,jexus也是一个“网站组织者”的角色。因为每个应用程序容器都有不同的端口,而服务器对外服务器不可能一个端口一个服务。通过jexus的“组织”,就能让不同的端口通过域名共同一个80端口。

保存后,重启Jexus服务器就生效了,就可以通过浏览器访问到asp.net core 网站了。 

大家可以通过 http://mono.cloudapp.net:5001/  访问到我这个最简单的Hello World

如果我把后端的ASP.NET Core应用关掉,会看到下面的页面

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

Notepad++ 更换主题

https://github.com/ajwitte/textmate-goodies

1.7K10
来自专栏黑泽君的专栏

最新版Sublime Text Build 3156 x64 的下载 + 注册码 + Install Package Control + 汉化教程

神器 Sublime Text 最近开始更新到开发版本 Build 3156,本身英语不是太6,汉化党自然各种百度汉化教程,网上不是一堆绿色汉化包,就是让你下载...

27420
来自专栏点点滴滴

KMS激活Windows与Office vol版

19520
来自专栏黑泽君的专栏

教你如何解决Sublime Text 3使用中出现的中文乱码问题

Sublime Text 3 是一个非常不错的源代码及文本编辑器,但是不支持GB2312和GBK编码在很多情况下会非常麻烦。

1.1K30
来自专栏Youngxj

Xposed框架怎么用?六步教您安装Xposed框架

93840
来自专栏张善友的专栏

使用 Visual Studio Agent 2010 进行负载压力测试的安装指南

在 Visual Studio 2010 Ultimate 里,其实不用特别安装 Visual Studio Agent 2010  就能进行负载压力测试,不过...

19760
来自专栏乐沙弥的世界

SQL Server 2012安装错误:Error while enabling Windows feature: NetFx3, Error Code: -2146498298

最近在安装SQL server 2012时,碰到错误:Error while enabling Windows feature: NetFx3, Error C...

25120
来自专栏张善友的专栏

通过Chocolatey软件包管理器安装.NET Core

在Linux的世界里,有了yum/apt-get百分之九十的软件都可以通过它来安装管理。但是在Windows系统上,装个软件还是挺折腾的。比如我要装个Chrom...

21970

ASP.NET MVC 6路由技术

在我们开始学习路由的自定义之前,先看一下MVC6较之于MVC5(在路由配置方面)有哪些变化。 ASP.NET MVC6将所有应用程序所必要的启动服务以及其所定义...

28750
来自专栏施炯的IoT开发专栏

How-to: 利用Visual Studio升级Windows Phone 7工程

        自从Windows Phone SDK 7.1 RTM发布以后,我们在Visual Studio 2010 Express for Window...

21960

扫码关注云+社区

领取腾讯云代金券