文章出處

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 。

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 網站了。 

大家可以通過 http://mono.cloudapp.net:5001/  訪問到我這個最簡單的Hello World

image
如果我把后端的ASP.NET Core應用關掉,會看到下面的頁面

image


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()