設定生產就緒 VPS 比我想像的要容易得多 - Best Guide on How toDeploy Backend Code in Production
- ?連結:https://www.subham.online
- ? GitHub:https://github.com/Subham-Maity
- ? Twitter:https://twitter.com/TheSubhamMaity
- ? LinkedIn:https://www.linkedin.com/in/subham-xam
- ? Insta:https://www.instagram.com/subham_xam
說實話......厭倦了讓您困惑的部署教學?是的,我也是。
看,我在幫助其他開發人員時注意到了一些事情 - 大多數指南都會跳過小但非常重要的步驟。你知道接下來會發生什麼事嗎?您在午夜遇到錯誤,打開 50 個瀏覽器標籤試圖找出問題所在。
這就是我建立本指南的原因。我將引導您完成部署伺服器的每個步驟。無論您是否正在與:
- Node.js
- 走
- Spring Boot(Java)
- 鐵鏽
- 姜戈
- 拉拉維爾
- 燒瓶
- 或任何其他伺服器
我將介紹那些通常會讓人絆倒的小細節。
把這想像成你的朋友坐在你旁邊,幫你部署伺服器而不費吹灰之力? .
卡在某個地方了嗎?只需在下面評論或直接給我留言即可。我真的回答了!
準備好以正確的方式部署您的伺服器了嗎?讓我們開始吧!
1️⃣第一步-連接VPS
✅ 1.選擇託管提供者
從任何託管提供者購買 VPS 計劃。
✅ 2.取得憑證
無論您是自由工作者還是在辦公室工作,您都需要三樣東西:
- IP位址:568.82.48.166
- 使用者名稱:root
- 密碼:Subham@Xam_08
範例:
568.82.48.166 root Subham@Xam_08
✅ 3. 透過終端連接
開啟終端機並輸入:
ssh root@568.82.48.166
✅ 4.驗證連線
您會看到這樣的訊息:
The authenticity of host '568.82.48.166 (568.82.48.166)' can't be established. ED33319 key fingerprint is SHA256:kLP3I9......QgQI. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
只要輸入「是」即可。
✅ 5.輸入密碼
接下來會提示:
Warning: Permanently added '568.82.48.166' (ED25519) to the list of known hosts. root@568.82.48.166's password:
貼上您的密碼 (Subham@Xam_08) 並按 Enter。
(注意:輸入密碼時終端不會顯示任何字元。只需按 Enter 鍵即可。)
✅ 6.成功!
如果一切正確,您將看到:
Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Dec 21 11:56:39 PM UTC 2024 System load: 0.01555554443125 Processes: 292 Usage of /: 2.1% of 20000.02GB Users logged in: 0 Memory usage: 5% IPv4 address for kms160: 568.82.48.166 Swap usage: 0% * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s just raised the bar for easy, resilient and secure K8s cluster deployment. https://ubuntu.com/engage/secure-kubernetes-at-the-edge 137 updates can be applied immediately. To see these additional updates run: apt list --upgradable *** System restart required *** Last login: Mon Dec 9 06:55:53 2024 from 203.145.52.235 root@ajfaljflaf:~#
root@ajfaljflaf:~# 是什麼意思?
此提示確認您已以 root 使用者身分使用主機名稱 ajfaljflaf 登入伺服器。您現在已準備好執行命令並設定伺服器。
2️⃣ 第二步 - 準備好您的系統
✅ 1.清理終端
登入後,輸入:
568.82.48.166 root Subham@Xam_08
✅ 2.驗證目錄
檢查目前目錄並列出檔案:
ssh root@568.82.48.166
範例輸出:
The authenticity of host '568.82.48.166 (568.82.48.166)' can't be established. ED33319 key fingerprint is SHA256:kLP3I9......QgQI. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
✅ 3. 更新包裹清單
刷新軟體包清單以確保最新更新:
Warning: Permanently added '568.82.48.166' (ED25519) to the list of known hosts. root@568.82.48.166's password:
範例輸出:
Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Dec 21 11:56:39 PM UTC 2024 System load: 0.01555554443125 Processes: 292 Usage of /: 2.1% of 20000.02GB Users logged in: 0 Memory usage: 5% IPv4 address for kms160: 568.82.48.166 Swap usage: 0% * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s just raised the bar for easy, resilient and secure K8s cluster deployment. https://ubuntu.com/engage/secure-kubernetes-at-the-edge 137 updates can be applied immediately. To see these additional updates run: apt list --upgradable *** System restart required *** Last login: Mon Dec 9 06:55:53 2024 from 203.145.52.235 root@ajfaljflaf:~#
如果您遇到警告或錯誤,請查看它們以確保它們不會阻止重要的更新。
✅ 4. 升級已安裝的軟體包
安裝可用的更新和升級:
clear
提示範例:
pwd ls
輸入 yes 繼續。
✅ 5. 處理升級提示
升級過程中,您可能會看到設定提示:
- 範例 1:確認操作 使用 Tab 鍵選擇“確定”,然後按 Enter:
- 範例 2:選擇預設值 選擇預設選項或進行更改,然後按下 Enter:
(注意:切換選項需要使用tab鍵)
-
查看升級完成情況
成功升級後,您將看到有關重新啟動服務的訊息:
root@hdicj8psx6:~# pwd /root root@hdicj8psx6:~# ls snap
這確認服務已根據需要重新啟動或延遲。
3️⃣ 第三步 - 安裝依賴項並透過正確的身份驗證複製儲存庫
✅ 1. 安裝 Node.js
若要安裝 Node.js,請執行:
sudo apt update
這將安裝 Node.js。
✅ 2. 安裝 Git
要安裝 Git,請運行:
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Ign:4 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy InRelease Err:5 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy Release 404 Not Found [IP: 185.125.190.80 443] Reading package lists... Done
✅ 3. 將您的儲存庫推送到 GitHub
如果您的程式碼尚未推送到 GitHub,請在本機上執行以下步驟:
sudo apt upgrade
其他有用指令:
124 upgraded, 13 newly installed, 0 to remove, and 0 not upgraded. Need to get 537 MB of archives. After this operation, 679 MB of additional disk space will be used.
注意:如果遇到驗證錯誤,您需要:
- 設定 SSH 金鑰。
- 使用個人存取令牌而不是密碼。
- 使用 GitHub CLI (gh) 進行身份驗證。
有關指導,請參閱本指南。
✅ 4. 克隆儲存庫
-
從 GitHub 複製 HTTPS 連結:
範例:
-
複製儲存庫:
568.82.48.166 root Subham@Xam_08
如果這是您第一次連接,您會看到以下訊息:
ssh root@568.82.48.166
✅ 5. 解決驗證問題
如果您遇到上述錯誤,請按照以下步驟操作:
-
安裝 GitHub CLI (gh):
The authenticity of host '568.82.48.166 (568.82.48.166)' can't be established. ED33319 key fingerprint is SHA256:kLP3I9......QgQI. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
-
使用 GitHub 進行驗證:
Warning: Permanently added '568.82.48.166' (ED25519) to the list of known hosts. root@568.82.48.166's password:
依照提示操作:
- 選擇 GitHub.com。
- 選擇 HTTPS 作為協定。
- 選擇“使用 Web 瀏覽器登入”,使用您的 GitHub 憑證對 Git 進行驗證。
提示範例:
Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Dec 21 11:56:39 PM UTC 2024 System load: 0.01555554443125 Processes: 292 Usage of /: 2.1% of 20000.02GB Users logged in: 0 Memory usage: 5% IPv4 address for kms160: 568.82.48.166 Swap usage: 0% * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s just raised the bar for easy, resilient and secure K8s cluster deployment. https://ubuntu.com/engage/secure-kubernetes-at-the-edge 137 updates can be applied immediately. To see these additional updates run: apt list --upgradable *** System restart required *** Last login: Mon Dec 9 06:55:53 2024 from 203.145.52.235 root@ajfaljflaf:~#
- 複製一次性程式碼並在瀏覽器中開啟連結。
- 登入您的 GitHub 帳戶並貼上程式碼。
- 返回您的終端機:
clear
✅ 6. 將 SSH 金鑰加入 GitHub
請參閱本指南將 SSH 金鑰新增至 GitHub。
✅ 7. 再次複製儲存庫
新增 SSH 金鑰後,複製您的儲存庫:
pwd ls
✅ 8.驗證克隆
克隆後,檢查儲存庫是否存在:
root@hdicj8psx6:~# pwd /root root@hdicj8psx6:~# ls snap
4️⃣ 第四步 - 設定您的項目
✅ 1.導覽至您的專案目錄
首先,列出用於定位您的專案的目錄:
sudo apt update
然後,進入您的專案資料夾:
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Ign:4 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy InRelease Err:5 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy Release 404 Not Found [IP: 185.125.190.80 443] Reading package lists... Done
提示: 輸入項目資料夾的前 2-3 個字母,然後按 Tab 鍵自動補全名稱。
✅ 2. 安裝專案依賴
在專案資料夾中執行以下命令來安裝必要的套件:
sudo apt upgrade
這可能需要幾分鐘,具體取決於項目的大小。
✅ 3. 設定 .env 檔案
如果您的專案沒有 .env 檔案(通常排除在非私人儲存庫中),您可以建立一個來儲存環境變數:
- 在專案目錄中開啟一個名為 .env 的新檔案:
124 upgraded, 13 newly installed, 0 to remove, and 0 not upgraded. Need to get 537 MB of archives. After this operation, 679 MB of additional disk space will be used.
- 以以下格式新增變數:
Restarting services... /etc/needrestart/restart.d/systemd-manager systemctl restart nginx.service polkit.service ssh.service udisks2.service Service restarts being deferred: systemctl restart networkd-dispatcher.service systemctl restart systemd-logind.service
- 儲存並退出編輯器:
- 按 Ctrl O,然後按 Enter 儲存。
- 按 Ctrl X 退出。
✅ 4. 驗證.env設定
檢查您的 .env 檔案是否存在且配置正確:
sudo apt install nodejs
✅ 5.運行應用程式
最後,使用以下命令啟動您的應用程式:
sudo apt install git
或者,如果您使用框架或腳本,請遵循其特定命令,例如:
568.82.48.166 root Subham@Xam_08
注意:如果遇到錯誤,請檢查 .env 變量,檢查已安裝的依賴項,並尋找任何遺失的配置。
這是內容的重寫版本,具有更好的結構、清晰度和格式:
5️⃣ 第五步 - 開始你的專案
安裝PM2
為了保持應用程式持續運行,您可以使用 PM2,它是 Node.js 應用程式的強大流程管理器。它允許零停機重新啟動並簡化 DevOps 任務。
執行以下指令全域安裝 PM2:
ssh root@568.82.48.166
開始您的申請
如果您使用NestJS,請按照此詳細指南使用 PM2 部署您的 NestJS 應用:
?在 Linux Ubuntu 伺服器上使用 PM2 部署 NestJS 應用程式
如果您正在使用 Node.js 應用程序,您可以參考本指南:
?如何使用 PM2 啟動 Node.js 應用程式
設定完成後,輸入以下指令啟動伺服器:
The authenticity of host '568.82.48.166 (568.82.48.166)' can't be established. ED33319 key fingerprint is SHA256:kLP3I9......QgQI. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
開啟瀏覽器並導航至:
Warning: Permanently added '568.82.48.166' (ED25519) to the list of known hosts. root@568.82.48.166's password:
例如:
http://404.89.46.183:3333/xam
?處理常見問題
⭐ 防火牆阻止您的網站
如果伺服器無法訪問,可能是由於防火牆問題。首先,使用以下命令驗證防火牆規則:
Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Dec 21 11:56:39 PM UTC 2024 System load: 0.01555554443125 Processes: 292 Usage of /: 2.1% of 20000.02GB Users logged in: 0 Memory usage: 5% IPv4 address for kms160: 568.82.48.166 Swap usage: 0% * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s just raised the bar for easy, resilient and secure K8s cluster deployment. https://ubuntu.com/engage/secure-kubernetes-at-the-edge 137 updates can be applied immediately. To see these additional updates run: apt list --upgradable *** System restart required *** Last login: Mon Dec 9 06:55:53 2024 from 203.145.52.235 root@ajfaljflaf:~#
此指令列出所有目前的防火牆規則。如果連接埠 3333 未列出或出現錯誤,您可以透過在 Stack Overflow 等平台或 GPT、Claude、Copilot 或 Llama 等工具上搜尋來確定問題。他們經常提供詳細的見解來解決特定問題。
⭐ 更新防火牆規則
如果防火牆阻止連接埠 3333 上的傳入流量,請使用下列指令更新規則:
clear
指令分解:
-A INPUT:在 INPUT 鏈追加一條規則。
-p tcp:指定TCP協定。
--dport 3333: 定義連接埠 3333。
-j ACCEPT:允許此連接埠上的流量。
現在驗證更新後的規則:
pwd ls
您應該會看到類似這樣的內容:
root@hdicj8psx6:~# pwd /root root@hdicj8psx6:~# ls snap
⭐ 持續的防火牆規則
為了確保防火牆規則在重新啟動後仍然存在,請安裝 netfilter-persistent 軟體套件:
sudo apt update
保存規則:
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Ign:4 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy InRelease Err:5 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy Release 404 Not Found [IP: 185.125.190.80 443] Reading package lists... Done
⭐ 管理 PM2 流程
-
使用 PM2 開始您的應用程式
使用下列命令啟動帶有 PM2 的伺服器:
sudo apt upgrade
-f 標誌強制 PM2 重新啟動進程。
刪除未使用的程序
如果有先前運行的進程,您可以使用它們的 ID 刪除它們:
568.82.48.166 root Subham@Xam_08
這可確保重複進程不會發生衝突。
現在您的應用程式應該可以順利運行了! ?
_注意:我將用有關 SSL、nginx 和所有其他相關事物的所有資訊更新部落格 _
以上是您需要的唯一 VPS 指南:從設定到生產的簡單步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Dreamweaver CS6
視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。