Asp.Net Core 釋出和部署(Linux + Jexus )
前言
在上篇文章中,主要介紹了 Dotnet Core Run 命令,這篇文章主要是講解如何在 asp.net core 中對我們的已經完成的程式進行釋出和部署。
目錄
- 安裝 Liunx DotNet 環境
- 新建一個 Web 專案,併發布
- 使用 Jexus 進行反向代理
安裝 Linux DotNet 環境
新建一個 WebApp 專案,併發布
在 Asp.Net Core 專案中,我們使用 dotnet new -t WebApp
命令和建立一個新的空的 Web 應用程式,然後使用dotnet resotre
還原 Nuget。
主要是用以下幾個命令:
mkdir 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 伺服器。 具體介紹我就直接放連結了。
安裝 Jexus
在命令列視窗中,使用以下命令來安裝一個綠色版的 jexus(無需另行安裝 Mono)。
cd /tmp
wget linuxdot.net/down/jexus-5.8.1-x64.tar.gz
tar -zxvf jexus-5.8.1-x64.tar.gz
sudo mv jexus /usr
sudo rm -rf /tmp/jexus*
使用以下命令來啟動 jexus
cd /usr/jexus
sudo ./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 檔案。
修改內容為如下:
port=80
# Jexus 預設訪問的工作目錄
root=/ /home/yxd/Workspace/publish
# 下面這種方式是反向代理。我設定的路徑是"/"即根目錄,大家可以根據
# 需要設定為非靜態的路徑
reproxy=/ http://localhost:5000/
# 下面這種方式是使用埠轉發
AppHost.Port=5000
# 注意: 以上兩種方式配置一種即可。
儲存並退出。 然後使用sudo ./jws restart
命令來重啟一下。
然後我們開啟瀏覽器 輸入http://localhost,發現此時已經通過 jexus 來訪問我們的站點了。
注意事項
1、在使用 jexus 代理訪問站點的時候, 保持命令dotnet run HelloWebApp.dll
的命令列視窗必須開啟。
2、可以使用下面的命令來讓一個命令列執行在後臺程序中。
nohup dotnet HelloWebApp.dll &
這個時候你就可以把命令列視窗關掉了。
下一篇將講解如何在 Linux 中使用 Docker 進行部署,以及如何脫離命令列宿主給我們的dotnet程式建立一個守護程序,及宕機失敗自動重啟等等。。。 請持續關注。
如果你覺得本文對你有幫助,不妨點個【推薦】。
相關推薦
Asp.Net Core 釋出和部署(Linux + Jexus )
前言 在上篇文章中,主要介紹了 Dotnet Core Run 命令,這篇文章主要是講解如何在 asp.net core 中對我們的已經完成的程式進行釋出和部署。 目錄 安裝 Liunx DotNet 環境 新建一個 Web 專案,併發布 使用 Jexus 進行反向代理 安裝 Linux DotNet
Asp.Net Core 釋出和部署( MacOS + Linux + Nginx )
前言 在上篇文章中,主要介紹了 Dotnet Core Run 命令,這篇文章主要是講解如何在Linux中,對 Asp.Net Core 的程式進行釋出和部署。 目錄 新建一個 WebApp 專案 釋出到 Linux,Mac OS 使用 Nginx 進行反向代理 新建一個 WebApp 專案 在 Asp
翻譯 - ASP.NET Core 託管和部署 - 在 Linux 上使用 Nginx 託管 ASP.NET Core 網站
翻譯自 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0 本文介紹了在 Ubuntu 16.04 伺服器上設定生產環境可用的 ASP.NET Core 環境。這裡的
VisualStudioCode建立的asp.net core控制檯程式部署到linux
1、asp.net core控制檯程式 static void Main(string[] args) { int times=10; while(times>=0) { Co
【ASP.NET Core快速入門】(十四)MVC開發:UI、 EF + Identity實現
dfa models cti ted lec inpu word pri numeric 前言 之前我們進行了MVC的web頁面的Cookie-based認證實現,接下來的開發我們要基於之前的MvcCookieAuthSample項目做修改。 MvcCookieAuth
【ASP.NET Core】處理異常(上篇)
關心 指向 然而 sub 相關 pri roo epon netcore 依照老周的良好作風,開始之前先說點題外話。 前面的博文中,老周介紹過自定義 MVC 視圖的搜索路徑,即向 ViewLocationFormats 列表添加相應的內容,其實,對 Razor Page
ASP.NET Core 2 學習筆記(十二)REST-Like API
light namespace strong postman space 新增 html move engine Restful幾乎已算是API設計的標準,通過HTTP Method區分新增(Create)、查詢(Read)、修改(Update)和刪除(Delete),簡稱
ASP.NET Core 2 學習筆記(十四)Filters
span ans 黃色 返回 lec red addm spn using 原文:ASP.NET Core 2 學習筆記(十四)FiltersFilter是延續ASP.NET MVC的產物,同樣保留了五種的Filter,分別是Authorization Filter、Res
ASP.NET Core 2 學習筆記(十一)Cookies & Session
自動 asp Go 內存 rtu serialize .html call names 原文:ASP.NET Core 2 學習筆記(十一)Cookies & Session基本上HTTP是沒有記錄狀態的協定,但可以通過Cookies將Request來源區分出來,並
Core中使用Hangfire 在Asp.Net Core中使用DI的方式使用Hangfire構建後臺執行指令碼 解決 ASP.NET Core Hangfire 未授權(401 Unauthorized)
之前使用Quartz.Net,後來發現hangfire對Core的繼承更加的好,而且自帶管理後臺,這就比前者好用太多了。 安裝註冊 安裝 PM> Install-Package Hangfire Startup.cs,在ConfigureServices方法中添加註冊:
【ASP.NET Core快速入門】(三)準備CentOS和Nginx環境
正常 b- 進入 運行 ins 輸入 最小 我們 -128 基本軟件 VMware虛擬機 centos:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso
【ASP.NET Core快速入門】(四)在CentOS上安裝.NET Core運行時、部署到CentOS
ati libunwind serve code api cal 之前 prompt conn 下載.NET Core SDK 下載地址:https://www.microsoft.com/net/download/windows 第一步:Add the dotne
將ASP.NET Core應用程序部署至生產環境中(CentOS7)
for linux home web 虛擬 direct director block bic 閱讀目錄 環境說明 準備你的ASP.NET Core應用程序 安裝CentOS7 安裝.NET Core SDK for CentOS7。 部署ASP.NET
用ASP.NET Core MVC 和 EF Core 構建Web應用 (二)
work nal nta 多個 包括 catch web 應用 自動 選項卡 本節學習如何執行基本的 CRUD (創建、 讀取、 更新、 刪除) 操作。 自定義“詳細信息”頁 學生索引頁的基架代碼省略了 Enrollments 屬性,因為該屬性包含一個集合。 在“詳細信息”
用ASP.NET Core MVC 和 EF Core 構建Web應用 (九)
fix pro school time lap namespace 繼承映射 數據庫表 eas 在上一節中,已經處理了並發異常。 本節將演示如何在數據模型中實現繼承。 在面向對象的編程中,可以使用繼承以便於重用代碼。 在本教程中,將更改 Instructor和 Studen
用ASP.NET Core MVC 和 EF Core 構建Web應用 (十)
pan 信息 expr dispose writing AS das ech 任務欄 之前的學習中,已經以每個類一張表的方式實現了繼承。 本節將會介紹在掌握開發基礎 ASP.NET Core web 應用程序之後使用 Entity Framework Core 開發時需要註
【ASP.NET Core快速入門】(二)部署到IIS
圖片 cor .com servers 訪問 publish img 控制臺 -m 原文:【ASP.NET Core快速入門】(二)部署到IIS配置IIS模塊 ASP.NET Core Module載地址:https://docs.microsoft.com/en-us/
ASP.NET Core MVC 和 Visual Studio入門(五) 使用 SQL Server LocalDB
ASP.NET Core MVC 和 Visual Studio入門(五) 使用 SQL Server LocalDB Rick Anderson MvcMovieContext物件操縱連線到資料庫並對映電影物件到資料庫記
ASP.NET Core MVC 和 Visual Studio入門(四)新增模型
ASP.NET Core MVC 和 Visual Studio入門(四)新增模型 Rick Anderson 和Tom Dykstra 在要節中將新增一些在資料庫中管理電影的類,這些類將成為MVC應用的“Model(模型)”部分。 這些類將與Enti
ASP.NET Core MVC 和 Visual Studio入門(三) 新增檢視
ASP.NET Core MVC 和 Visual Studio入門(三) 新增檢視 本節將修改HelloWorldController類,從而使用Razor檢視模板來乾淨利索地封裝產生一個HTML迴應給客戶端的過程。 我們將使用Razor建立一個檢視模板,基於