前言
在上篇文章中,主要介紹了 Dotnet Core Run 命令,這篇文章主要是講解如何在Linux中,對 Asp.Net Core 的程序進行發布和部署。
目錄
新建一個 WebApp 項目
在 Asp.Net Core 項目中,我們使用 dotnet new -t WebApp 命令和創建一個新的空的 Web 應用程序。
以下是我在 Mac 中的截圖:
主要是用以下幾個命令:
mkdir HelloWebApp 這個命令是創建一個名為 HelloWebApp 的文件夾。
dotnet new -t Web 這個命令是使用 Web 模板來新建一個 WebApp 的 Mvc 應用程序。
新建了應用程序之后,使用dotnet restore 和 dotnet run 命令來測試一下我們的應用程序。
可以看到已經成功運行了。
我們打開瀏覽器輸入 http://localhost:5000,來看一下效果。
ps: Safari 下面,瀏覽器地址欄看不到端口號,實際上是5000端口。
發布到 Linux,Mac OS
如果發布應用程序,我們需要使用 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 使用默認的發布路徑,當看到Published 1/1 projects successfully的時候,說明已經發布成功了。 接著進入到 bin 文件夾下的Debug 文件夾下的netcoreapp1.0 文件夾,然后會看到有一個 publish 的文件夾。這就是默認發布生成的文件夾,在這個文件夾中可以看到我們程序所有依賴的程序集文件。
發布之后 publish 文件夾里面的子文件夾有必要說明一下。
然后我們把工作目錄切換到發布的 publish 文件夾。使用dotnet HelloWebApp.dll測試發布過后的程序是否運行正常。
使用 Nginx 進行反向代理
反向代理,即把我們應用程序的一部分路徑交給 Nginx 去處理,比如靜態文件,圖片等。另外一部分動態的交給 Kestrel 來處理。這樣可以降低我們的后端 Kestrel 的壓力,以及可以在 Nginx 配置負載均衡等。
新聞熱點
疑難解答