HTML5技术

结合Jexus + Kestrel 部署 asp.net core 生产环境 - 张善友

字号+ 作者:H5之家 来源:博客园 2016-05-24 11:00 我要评论( )

ASP.NET Core 是微软的全新的框架。这一框架的目标 ︰ 1) 模块化实现 2) 一切都尽可能的-异步 3) 依赖关系注入 微软已经如期发布了.NET Core R2, 具体参见文章《微软.NET Core RC2正式发布,横跨所有平台》,现在可以放心的基于.NET Core 构建 ASP.NET Co

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

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。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 。

NM7[OQ)`BRG`OQ5HBK()]XQ

 

在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 网站了。 

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

image


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

image

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 结合WebSocket编写WebGL综合场景示例 - ljzc002

    结合WebSocket编写WebGL综合场景示例 - ljzc002

    2016-11-07 12:00

  • 初探React与D3的结合-或许是visualization的新突破? - zhoujunpeng

    初探React与D3的结合-或许是visualization的新突破? - zhoujunpeng

    2016-03-28 10:00

  • 利用轮播原理结合hammer.js实现简洁的滑屏功能 - 流云诸葛

    利用轮播原理结合hammer.js实现简洁的滑屏功能 - 流云诸葛

    2016-02-02 10:46

  • 对结合BDD进行DDD开发的一点思考和整理 - 没头脑的老毕

    对结合BDD进行DDD开发的一点思考和整理 - 没头脑的老毕

    2016-01-22 11:00

网友点评
n