將 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:
右鍵點擊專案 → 發佈
選擇資料夾作為目標
選擇Release模式
- 設置部署型別為依賴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服務託管,此指南提供了清晰性、控制力和強大的功能來構建動態和可擴展的網頁應用程式。

