iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
0
Modern Web

我與 ASP.NET Core 的 30天系列 第 29

[Day29] 部署網站 - 我與 ASP.NET Core 3 的 30天

一般來說,發布ASP.NET Core的應用程式部署到伺服器上會經過以下動作

  1. 將發布的應用程式部署到伺服器上的資料夾。
  2. 設置一個進程管理器,當請求到達時啟動該應用程序,並在崩潰或伺服器重新啟動後重新啟動該應用程式。
  3. 要配置反向代理,設置反向代理以將請求轉發到應用程式。

發布至資料夾

首先須先使用dotnet publish將網站發布到指定的資料夾中
dotnet publish 如果加上參數 -o <資料夾名稱> 會輸出到指定的目錄底下,如果沒特別指定則會輸出至bin/Debug/netcoreapp3.1/publish底下。也可以透過--configuration參數來指定發佈的組態,例如dotnet publish --configuration Release,就會將檔案發佈到bin/Release/netcoreapp3.1/publish底下。
發布出來的檔案可以透過SCP或是SFTP來放到伺服器上

在Linux上裝載ASP.NET Core

首先要在伺服器上裝載ASP.NET Core應用程式,就必須要安裝 .NET Core Runtime,可以透過下載頁面,或是直接透過套件管理的指定來下載
以CentOS 7 為範例:

sudo yum install aspnetcore-runtime-3.1

安裝完畢之後便可以透過 .NET CLI 啟動部署好的ASP.NET Core應用程式
在部屬的目錄底下輸入

dotnet <專案名稱>.dll

因為ASP.NET Core自帶Kestrel Server,所以不需要透過其他HTTP Server就可以啟動網站應用程式了。
備註:要先檢查防火牆的指定Port是否有開啟

做到這邊相信各位朋友一定嘗試連接自己部署的網站應用程式了,但是奇怪的是,為什麼已經啟動了,外部還是無法連進網站。
那是因為目前啟動的網站只允許localhost做存取,所以無法讓其他非本地的使用者訪問,這時候我們就要將啟動的指令做些變更

ASPNETCORE_URLS="https://*:5001" dotnet <專案名稱>.dll

透過這個指令,可以讓直接訪問ip或是domain name的使用者能夠順利存取到網站


上一篇
[Day28] 組態設定 - 我與 ASP.NET Core 3 的 30天
下一篇
[Day30] 持續整合與部署 - 我與 ASP.NET Core 3 的 30天
系列文
我與 ASP.NET Core 的 30天31

尚未有邦友留言

立即登入留言