Asp.Net Core 发布和部署(Linux + Jexus )
前言
在上篇文章中,主要介紹了 Dotnet Core Run 命令,這篇文章主要是講解如何在 asp.net core 中對我們的已經完成的程序進行發布和部署。
有關如何使用 Nginx 進行部署,請參見本人的另一篇文章:
http://www.cnblogs.com/savorboard/p/dotnet-core-publish-nginx.html
目錄
安裝 Liunx DotNet 環境
新建一個 Web 項目,并發布
使用 Jexus 進行反向代理
安裝 Linux DotNet 環境
安裝 dotnet 環境參見官方網站?https://www.microsoft.com/net/core#ubuntu。
新建一個 WebApp 項目,并發布
在 Asp.Net Core 項目中,我們使用?dotnet new -t WebApp?命令和創建一個新的空的 Web 應用程序,然后使用dotnet resotre還原 Nuget。
主要是用以下幾個命令:
mkdir HelloWebApp?這個命令是創建一個名為 HelloWebApp 的文件夾。
dotnet new -t Web?這個命令是使用 Web 模板來新建一個 WebApp 的 Mvc 應用程序。
新建了應用程序之后,使用dotnet restore?和?dotnet run?命令來測試一下我們的應用程序。
我們打開瀏覽器輸入?http://localhost:5000,來看一下效果。
可以看到已經成功運行了。
如果發布應用程序,我們需要使用?dotnet publish命令,通過使用?--help?參數可以看到一些可以使用的命令參數。
?-f|--framework <FRAMEWORK> ? ? ? ? ?Target framework to compile for-r|--runtime <RUNTIME_IDENTIFIER> ? Target runtime to publish for-b|--build-base-path <OUTPUT_DIR> ? Directory in which to place temporary outputs-o|--output <OUTPUT_PATH> ? ? ? ? ? Path in which to publish the app--version-suffix <VERSION_SUFFIX> ? Defines what `*` should be replaced with in version field in project.json-c|--configuration <CONFIGURATION> ?Configuration under which to build--native-subdirectory ? ? ? ? ? ? ? Temporary mechanism to include subdirectories from native assets of dependency packages in output--no-build ? ? ? ? ? ? ? ? ? ? ? ? ?Do not build projects before publishing我們運行dotnet publish -o ~/WorkSpace/publish?發布到 publish 文件夾,當看到Published 1/1 projects successfully的時候,說明已經發布成功了。
PS: 如果提示沒有安裝 NPM 工具,運行sudo install apt-get npm -g,先安裝 NPM。
如果提示沒有 bower 管理工具,使用?sudo npm install bower -g安裝 bower。
如果提示沒有 gulp 構建工具,使用?sudo npm install gulp -g安裝 gulp。
如安裝過程中無響應,請科學上網后再安裝。
發布之后 publish 文件夾里面的子文件夾有必要說明一下。
appsettiong.json ?應用程序的配置文件refs 應用程序引用的.net fx系統程序集runtimes 運行時環境,可以看到里面的文件夾包含 win7、linxu,mac os 等,說明我們這個應用程序是跨平臺的。views 這個文件夾存放的就是我們的 mvc 的視圖文件。wwwroot 文件夾,存放的是前端使用的 js 庫,css 樣式表,和圖片等。然后使用dotnet HelloWebApp.dll測試發布過后的程序是否運行正常。
使用 Jexus 進行反向代理
Jexus 介紹
安裝 Jexus
配置 Jexus
注意事項
Jexus 介紹
Jexus 是一款國產的,運行在 Linux 上的 Web 服務器。 具體介紹我就直接放鏈接了。
官網:?http://www.jexus.org/
張善友的介紹:http://www.cnblogs.com/shanyou/archive/2011/01/23/Jexus.html
安裝 Jexus
在命令行窗口中,使用以下命令來安裝一個綠色版的 jexus(無需另行安裝 Mono)。
cd /tmpwget linuxdot.net/down/jexus-5.8.1-x64.tar.gztar -zxvf jexus-5.8.1-x64.tar.gzsudo mv jexus /usrsudo rm -rf /tmp/jexus*使用以下命令來啟動 jexus
cd /usr/jexussudo ./jws start打開瀏覽器輸入http://localhost?如果看到下面這個異常界面,代表運行成功了。
配置 Jexus
有兩種方式可以在 Jexus 上訪問我們的 Web 應用程序。 即端口轉發和反向代理的方式,下面是兩種方式的配置方法。
1、** 端口轉發 **
端口轉發,即把 Jexus 配置的端口直接轉發到我們的 asp.net 程序中,即轉發到 Kestrel 去處理。
2、** 反向代理 **
反向代理,即把我們應用程序的一部分路徑交給 Jexus 去處理,比如靜態文件,圖片等。另外一部分動態的交給Kertrel 來處理。這樣可以降低我們的后端 Kertrel 的壓力。
還有一個很重要的優勢就是 Web 中的緩存,會在代理服務器這一步來處理。大家看下面這個圖:
至于怎么樣添加代理服務器可以識別到的緩存,可以關注我后面發表的博客文章。
按照上述方式安裝完 Jexus 之后,配置文件路徑在?/usr/jexus/siteconf/default?文件中。
切換工作目錄到/usr/jexus/siteconf/,使用sudo gedit default命令打開 default 文件。
修改內容為如下:
保存并退出。 然后使用sudo ./jws restart命令來重啟一下。
然后我們打開瀏覽器 輸入http://localhost,發現此時已經通過 jexus 來訪問我們的站點了。
注意事項
1、在使用 jexus 代理訪問站點的時候, 保持命令dotnet run HelloWebApp.dll的命令行窗口必須開啟。
2、可以使用下面的命令來讓一個命令行運行在后臺進程中。
nohup dotnet HelloWebApp.dll &這個時候你就可以把命令行窗口關掉了。
下一篇將講解如何在 Linux 中使用 Docker 進行部署,以及如何脫離命令行宿主給我們的dotnet程序創建一個守護進程,及宕機失敗自動重啟等等。。。 請持續關注。
相關文章:
ASP.NET Core 1.0 入門——了解一個空項目
ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
.NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡介
云服務器下ASP.NET Core 1.0環境搭建(包含mono與coreclr)
使用VS Code開發ASP.NET Core 應用程序
dotnet run是如何啟動asp.net core站點的
ASP.NET Core提供模塊化Middleware組件
“dotnet restore"和"dotnet run"都做了些什么?
探秘 dotnet run 如何運行 .NET Core 應用程序
.NET Portability Analyzer 已開源
ASP.NET Core的配置(1):讀取配置信息
ASP.NET Core的配置(2):配置模型詳解
.NET Core 1.0 RC2 歷險之旅
使用VS Code開發 調試.NET Core 應用程序
讓我們Core在一起:ASP.NET Core & .NET Core
.NET Core VS Code 環境配置
官方博客明確了 .NET Core RC2/RTM 時間表
.NET Core全新的配置管理[共9篇]
利用記事本創建一個ASP.NET Core RC2 MVC應用
微軟.NET 正式劈腿成功,橫跨所有平臺
.NET Core 1.0 CentOS7 嘗試
解讀發布:.NET Core RC2 and .NET Core SDK Preview 1
[.NET Core].NET Core R2安裝及示例教程
ASP.NET Core 開發-中間件(Middleware)
結合Jexus + Kestrel 部署 asp.net core 生產環境
通過Jexus 部署 dotnetcore版本MusicStore 示例程序
ASP.NET Core 中文文檔 第一章 入門
用 Visual Studio Code 在 macOS 上創建首個 ASP.NET Core 應用程序
用 Visual Studio 和 ASP.NET Core MVC 創建首個 Web API
用 Visual Studio 發布一個 Azure 云 Web 應用程序
ASP.NET Core MVC 與 Visual Studio 入門
第二章指南(4.2)添加 Controller
DotNet Core 介紹
asp.net core 中間件詳解及項目實戰
教你實踐ASP.NET Core Authorization(免看文檔教程)
asp.net core 使用 Redis 和 Protobuf 進行 Session 緩存
asp.net core 中間件詳解及項目實戰
第二章 指南(4.3)添加 View
dotnet core開發體驗之開始MVC
dotnet core 開發體驗之Routing
聊聊ASP.NET Core默認提供的這個跨平臺的服務器——KestrelServer
簡析.NET Core 以及與 .NET Framework的關系
.NET Core 使用Dapper 操作MySQL
使用 CommandLineApplication 類創建專業的控制臺程序
簡析 .NET Core 構成體系
.NET Core也可以使用MongoDB了
.NET Core & ASP.NET Core 1.0在Redhat峰會上正式發布
.NET Core:面向未來的開源跨平臺開發技術
微軟說它深愛著Linux,現在它用行動證明了
移植.NET Core計劃,整合各平臺變得更簡單了!
ASP.NET Core 介紹
通過幾個Hello World感受.NET Core全新的開發體驗
ASP.NET Core 運行原理剖析1:初始化WebApp模版并運行
.NET Core系列 : 1、.NET Core 環境搭建和命令行CLI入門
原文地址:http://www.cnblogs.com/savorboard/p/dot-net-linux-jexus.html
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
贊賞
人贊賞
總結
以上是生活随笔為你收集整理的Asp.Net Core 发布和部署(Linux + Jexus )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.Net Core 发布和部署(
- 下一篇: 学习ASP.NET Core,你必须了解