跳至頁尾內容
Iron Academy Logo
C#應用程式
C#應用程式

其他類別

將 API 部署到 VPS

[[academy-video-youtube({"vid": "FRCEGzo2HeA", "start_time": "0", "title": "Deploying the API to a VPS", "creator": "Tim Corey", "length": "23m 24s"})]]

部署網頁應用程式是任何.NET開發人員旅程中的里程碑。 無論您是使用ASP.NET Core、.NET Framework,或是開發其他型別的動態網站,將您的應用程式部署到虛擬私有伺服器(VPS)上能讓您完全控制託管環境、安全性與可擴展性。

在這個詳細的指南中,我們探討如何按照Tim Corey的教學"Deploying the API to a VPS"的見解,將一個極簡的C# API部署到VPS上。從域名註冊到SSL證書及通過Visual Studio的發佈,Tim涵蓋了一切。 如果您正在探索VPS解決方案或.NET Core託管選項,這份指南將是您實際部署的入門。

為何在網頁開發中使用範例API?

一開始,Tim解釋了擁有範例API的價值。 這是一個絕佳的測試平台,當您使用HTML、JavaScript或甚至Blazor建構前端應用程式時。 您將獲得完整的網頁開發體驗,從後端邏輯到託管和部署。

域名策略:準備好再購買

Tim 強調一個關鍵原則 —— 當您有新應用程式想法時,不要急於購買域名。 許多新進開發者未經深思熟慮便在域名、託管套餐以及郵件伺服等功能上花費過多,而沒有一個可運作的原型。

相反地,應先專注於您的程式語言、資料模型和API邏輯。一旦專案成熟,再購買域名和託管帳戶。 然而,在這次教學中,Tim透過Namecheap預購了thesampleapi.com —— 他推薦的可靠託管提供商。

選擇VPS託管提供商

Tim 在此專案中使用InterServer —— 他信賴的高效能低成本VPS託管提供商。 雖然他通常使用Azure(特別是對於Microsoft SQL Server或企業級部署),在此處Tim選擇InterServer來展示其彈性。

他提到VPS託管方案的優勢:

  • 比共用託管方案有更多的控制權

  • 為動態網站提供更好的效能

  • SSD儲存和可擴展的磁碟空間

  • 可選的DDoS防護和對作業系統的完全存取權

對於比較Linux VPS和Windows Server託管選項的開發者,Tim的案例展示了如何在這兩個環境中工作,儘管此範例使用的是基於Windows的VPS。

使用Plesk控制面板進行網頁託管設置

Tim 步驟詳述了如何通過Plesk控制面板設置他的託管服務。 VPS解決方案通常授予root存取權限或控制面板存取權限以配置您的網頁伺服器。 他設置thesampleapi.com域名並配置基本的網頁託管。

這一步驟包括:

  • 啟用DNS託管

  • 建立託管目錄

  • 理解VPS上的共用伺服器和專用伺服器結構

Tim指出,VPS使用者常常在一個伺服器實例中託管多個域名。 這就是VPS比傳統共用Windows託管強大的地方 —— 它可隨您的需求擴充,並能有效地處理高流量。

透過Namecheap更新DNS設置

為了將域名連接到託管提供商,Tim在Namecheap更新了Name Server(NS)記錄,以指向InterServer的DNS。 這樣可以讓域名解析到VPS的IP地址。

Tim 表示這最多可能需要48小時,但依他的經驗經常在15分鐘或更短時間內完成 —— 這是.NET開發人員急於看見自己作品上線時的獎勵。

安裝SSL證書

在現代網頁應用中,安全性不容妥協。 Tim 使用Let's Encrypt設置了一個SSL證書,這提供免費的網站加密。 他使用一個通配符SSL證書,這樣像www.thesampleapi.com和api.thesampleapi.com這樣的子域也得到了保護。

這是一個關鍵步驟,特別是對於處理敏感資料的ASP.NET Core API。 SSL證書加密客戶端和網頁伺服器之間的通信,是高效能、安全網站的必備條件。

使用Visual Studio發佈

接下來,Tim展示如何從Visual Studio發佈ASP.NET Core API:

  1. 右鍵點擊專案 → 發佈

  2. 選擇資料夾作為目標

  3. 選擇Release模式

  4. 設置部署型別為依賴Framework(適用於安裝了相應.NET版本的環境)

如果部署到沒有安裝.NET的Linux託管環境,Tim建議切換到自行包含部署。 這會將所需的.NET Core執行時打包,確保在遠端伺服器上的相容性。

發佈會生成一組可以直接上傳到託管提供商的文件。

將文件上傳到網頁伺服器

Tim使用控制面板中的文件管理器刪除預設文件並上傳已發佈的文件夾。 他直接將內容從他的機器拖到VPS文件系統中。 一旦上傳完成,點擊域名URL會返回一個基本的"Hello World"訊息,這表明應用程式已在線。

對於更高級的使用者,他推薦根據您的託管服務提供商的能力,使用GitHub Actions或webdev自動化部署。

測試API端點

然後,Tim導航到他的C# API中定義的路由/courses。 它返回JSON資料,證明ASP.NET Core應用程式正常運行。 這也確認了後端邏輯、路由和中介軟體在網頁伺服器上的正確處理。

修復Swagger UI(Scaler/V1)

許多.NET開發人員常遇到的一個問題是,Swagger UI(用於API文件)僅在開發模式中工作。 Tim 識別到項目的配置文件禁用生產環境中的Swagger。

他更新配置文件中的OpenAPI設置,使其即使在生產環境中也可用 —— 在現場設置中進行除錯和測試必不可少。

將根目錄重定向到Swagger UI

Tim在API的根端點中新增了一個重定向,而不是在首頁顯示"Hello World"。 現在,存取https://thesampleapi.com將自動將使用者重新導向到位於/scaler/v1的Swagger文件。這一小改變提高了可用性,幫助開發人員快速存取API規範。

更新後重新部署

為了反映新變化,Tim重複了發佈-上傳流程。 他清除了VPS文件目錄並重新上傳新構建。 他解釋說,雖然這種方式會造成短暫的停機,但在開發階段是可以接受的。

對於具有高流量的生產應用程式,Tim推薦使用預備插槽 —— 一個在更高級的託管方案或平台如Azure中找到的功能。 這樣可以實現無停機部署。

最終驗證和API測試

隨著API的更新和部署,Tim確認:

  • SSL 證書有效

  • 端點返回正確資料

  • Swagger UI 可在/scaler/v1存取

部署取得成功。 開發者現在可以從任何前端測試這個現場API —— 不管是Angular、React、Blazor,甚至是像WPF和WinForms這樣的桌面應用程式。

接下來是什麼?

Tim 鼓勵開發者探索使用範例API與不同的前端進行對接。 無論您是在構建動態網站、測試整合,或是實驗經典的ASP或Visual Basic,此已部署的API都是一個極好的資源。

您可以在以下位置存取這個現場API:

摘要

對於任何使用.NET Core、.NET Framework,或一般網頁應用程式的開發者來說,將API部署到VPS是一個寶貴的學習經驗。 Tim Corey 的影片展示了整個旅程 —— 從域名設置到最終部署,提供了實用的技巧和最佳實踐。

如果您考慮轉向VPS託管計劃、需要避免傳統網頁託管公司的隱藏費用,或是想在共用託管之外進行實驗,這份教學會將您帶上正確的道路。

無論您是在推出您的第一個API或是在探索.NET服務託管,此指南提供了清晰性、控制力和強大的功能來構建動態和可擴展的網頁應用程式。

Hero Worlddot related to 將 API 部署到 VPS
Hero Affiliate related to 將 API 部署到 VPS

分享您所愛以賺取更多報酬

您是否為使用 .NET、C#、Java、Python 或 Node.js 的開發者建立內容?將您的專業知識轉化為額外收入!

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話