Jexus + Kestrel 部署 asp.net core
结合Jexus + Kestrel 部署 asp.net core 生产环境
ASP.NET Core 是微软的全新的框架。这一框架的目标 ︰
- 跨平台
- 针对云应用优化
- 解除 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。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应用关掉,会看到下面的页面

Jexus + Kestrel 部署 asp.net core的更多相关文章
- 结合Jexus + Kestrel 部署 asp.net core 生产环境
ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依赖. 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS: ...
- Centos7安装jexus,部署asp.net core,asp.net mvc
什么是Jexus 官网解释:https://www.jexus.org/ Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,Jexus Web Service,简称JWS,以支持AS ...
- 在Linux环境下使用Jexus部署ASP.NET Core
关于如何在Linux中添加ASP.NET Core运行时环境请参考我的上一篇文章,本文章将不再做赘述. 本文章运行环境如下: (1) 安装独立版Jexus 本教程安装的是独立版的Jexus,独立版的 ...
- ubuntu16.4下用jexus部署asp.net core rtm
上篇文章介绍了下用vs发布部署到iis环境,今天说下ubuntu 下部署asp.net core,不需要安装.net core sdk,自带运行时方式部署,利用jexus服务器转发请求到asp.net ...
- win10下iis部署asp.net core rtm
随着ASP.NET Core 1.0 rtm的发布,网上有许多相关.net core 相关文章,今刚好有时间也在win10环境上搭建下 ASP.NET Core的部署环境,把过程记录下给大家. 1. ...
- 在Linux环境下使用Apache部署ASP.NET Core
在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Ap ...
- CentOS7上部署ASP.Net Core 2.2应用
前言 在CentOS7上部署ASP.Net Core应用是我的技术路线验证的一部分,下一个产品计划采用ASP.Net Boilerplate Framework开发.因此需要求提前进行一下技术验证,在 ...
- Windows + IIS 环境部署Asp.Net Core App
环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运 ...
- 在CentOS7 开发与部署 asp.net core app笔记
原文:在CentOS7 开发与部署 asp.net core app笔记 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lihongzhai/art ...
随机推荐
- HDU 1432 Lining Up (POJ 1118)
枚举,枚举点 复杂度为n^3. 还能够枚举边的,n*n*log(n). POJ 1118 要推断0退出. #include<cstdio> #include<cstring> ...
- Linux命令: chown
touch auth.log root@ubuntu:/work# ls -l auth.log -rw-r--r-- 1 root root 0 Feb 18 19:27 auth.log chow ...
- MySQL新建用户,授权,删除用户,修改密码等命令
首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的. 注:本操作是在WIN命令提示符下,phpMyAdmin同样适用. 用户:phplamp 用户数 ...
- Chrome 快捷键
chrome窗口和标签页快捷键: Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shift+N 在隐身模式下打开新窗口 Ctrl+O,然后选择文件 在谷歌浏览器中打开计算机上的文件 ...
- shell中exec解析(转)
参考:<linux命令.编辑器与shell编程> <unix环境高级编程> exec和source都属于bash内部命令(builtins commands),在bash下输入 ...
- m2eclipse简单使用,创建Maven项目 ,运行mvn命令(转)
前面介绍了如何安装m2eclipse,现在,我们使用m2ecilpse导入Hello World项目. 选择菜单项File,然后选择Import,我们会看到一个Import对话框,在该对话框中选择Ge ...
- HDU 4720Naive and Silly Muggles热身赛2 1005题(分锐角钝角三角形讨论)
Naive and Silly Muggles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
- linux下crontab的使用方法
<span style="font-size:14px;">在Linux中任务可以被配置在指定的时间段.指定的日期.或系统平均载量低于指定的数量时自动运行. cront ...
- IE浏览器下安装firebug
第一步: 将一个网址拖动到地址收藏栏: 第二步: 第三步: 将路径改为:javascript: var dd = (window["inIframe"] || window).do ...
- iOS开发- 查询项目代码行数
...事实上, 这功能也没什么用. 就是查询一个项目总的代码行数. 玩玩倒是能够. 方法: 在终端以下依次输入: cd 项目文件 find . "(" -name "*. ...