您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何在Linux+Jexus中發布和部署,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
安裝 dotnet 環境參見官方網站 https://www.microsoft.com/net/core。
在 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 是一款國產的,運行在 Linux 上的 Web 服務器。 具體介紹我就直接放鏈接了。
官網: http://www.jexus.org/
在命令行窗口中,使用以下命令來安裝一個綠色版的 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 上訪問我們的 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+Jexus中發布和部署有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。