租用您的第一個雲伺服器?在部署小型應用之前,避免這些常見的VPS錯誤
租用您的第一個雲伺服器?在部署小型應用之前,避免這些常見的VPS錯誤
租用您的第一個雲伺服器令人興奮,但這也是許多初學者浪費金錢、丟失數據或以弱安全性將應用暴露於互聯網的地方。
VPS為您提供一個真正的Linux伺服器,並擁有根訪問權限。這種自由對於部署網站、API、機器人、儀表板、自動化腳本和小型SaaS項目非常有用。但與共享主機不同,VPS也意味著您需要負責操作系統、防火牆、更新、備份、域名、網頁伺服器和應用程序過程。
本指南是為首次使用VPS的用戶編寫的,旨在幫助他們在不陷入最常見的陷阱的情況下部署小型應用。我將介紹:
- 如何選擇合適的VPS計劃
- 在付款之前應避免的錯誤
- 如何保護全新的Ubuntu伺服器
- 如何部署小型Node.js應用
- 如何添加Nginx、域名、HTTPS、防火牆規則和基本監控
- 何時使用像LightNode VPS這樣的提供商對初學者來說是合適的
以下命令假設使用Ubuntu 22.04或24.04,並且小型網頁應用正在監聽端口3000。
1. 在定義工作負載之前不要租用VPS
第一個錯誤是在不知道您將運行什麼之前就購買伺服器。
不要從以下問題開始:
哪個是最便宜的VPS?
應該從以下問題開始:
這台伺服器在接下來的30天內將運行什麼?
對於第一次的小型應用,您的工作負載可能是以下之一:
- 登陸頁面
- 個人博客
- 小型Node.js或Python API
- Telegram或Discord機器人
- 輕量級管理儀表板
- 測試數據庫
- 用於學習部署的暫存伺服器
大多數初學者項目不需要大型伺服器。現實的起始點是:
| 使用案例 | 建議的VPS |
|---|---|
| 靜態網站或學習Linux | 1 vCPU, 1 GB RAM |
| 小型Node.js/Python應用 | 1 vCPU, 1-2 GB RAM |
| WordPress或帶數據庫的應用 | 2 vCPU, 2-4 GB RAM |
| Docker與多個服務 | 2-4 vCPU, 4 GB+ RAM |
如果您不確定,請從小開始,然後再升級。初次購買VPS時過度購買是常見的,因為初學者將“生產就緒”與“大型伺服器”混淆。小型應用通常需要乾淨的配置,而不是昂貴的硬件。
2. 租用VPS時的常見錯誤
錯誤1:僅根據最低價格選擇
非常便宜的VPS可以用於實驗,但僅僅依賴價格並不能告訴您:
- CPU是否被大量共享
- 存儲是SSD還是NVMe
- 網絡路由對您的用戶是否良好
- 帶寬是否有限制或被限制
- 快照和備份是否需要額外費用
- 支持是否及時
對於第一次部署,選擇一個使伺服器創建、重建、IP管理、計費和區域選擇易於理解的提供商。
這也是為什麼LightNode值得初學者考慮的原因之一。LightNode提供具有全球位置的雲VPS計劃,Linux和Windows選項,以及靈活的計費。如果您正在測試小型應用,按小時計費是有用的,因為您可以創建伺服器、部署、測試延遲,並在位置或配置錯誤時停止付款。
您可以在這裡查看: LightNode VPS
錯誤2:選擇錯誤的伺服器位置
伺服器位置影響實際用戶體驗。
如果您的用戶在新加坡,歐洲的伺服器可能可以使用,但會感覺較慢。如果您的客戶在美國,請選擇美國地區。如果您的團隊每天需要SSH訪問,請選擇一個對您的團隊延遲穩定的位置。
在租用之前,決定:
- 大多數用戶位於哪裡?
- 低延遲是否重要?
- 應用是否提供圖像、文件或API?
- 您是否需要特定國家以滿足合規或商業需求?
LightNode在這方面可以實用,因為它擁有許多全球VPS位置。對於新用戶來說,這使得測試接近受眾的區域變得更容易,而不是隨便猜測。
錯誤3:忽視操作系統
對於大多數初學者,選擇Ubuntu LTS。
推薦:
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
避免僅因為面板中出現不熟悉的操作系統而選擇它。Ubuntu擁有最多的教程、最友好的初學者包示例,並且與Node.js、Python、Docker、Nginx、Certbot和數據庫軟件具有廣泛的兼容性。
錯誤4:永遠以根用戶登錄
許多提供商在伺服器創建後會通過電子郵件或顯示根密碼。這是正常的,但您不應該將根用戶作為日常登錄。
根訪問權限是強大的。錯誤的命令可能會破壞伺服器。洩露的根密碼可能會使攻擊者完全控制。
更安全的模式是:
- 只以根用戶登錄一次
- 創建一個普通用戶
- 給該用戶sudo權限
- 使用SSH密鑰
- 在確認密鑰訪問正常後禁用密碼登錄
下面的教程顯示了具體步驟。
錯誤5:在更新伺服器之前部署應用
全新的VPS映像可能沒有最新的安全補丁。在安裝您的應用堆棧之前,請更新系統:
sudo apt update
sudo apt upgrade -y
sudo reboot跳過這一步在第一天並不會造成劇烈影響,但會養成壞習慣。在將服務暴露於互聯網之前,始終更新。
錯誤6:打開太多端口
初學者經常因為某些東西無法正常工作而打開每個端口。這是危險的。
對於基本的網頁應用,您通常只需要:
22用於SSH80用於HTTP443用於HTTPS
您的應用端口,例如3000,應該保持私有,並通過Nginx作為反向代理訪問。
錯誤7:在出現問題之前忘記備份
備份是無聊的,直到您刪除數據庫、破壞部署或丟失伺服器。
至少,請保留:
- 在重大更改之前的提供商快照
- 數據庫備份
- Git中的應用源代碼
- 安全存放的
.env秘密 - 如果您的應用接受上傳,則上傳的文件應複製到伺服器外
不要將VPS視為項目的唯一副本。
3. 首次VPS設置檢查清單
在部署任何內容之前,收集以下詳細信息:
- VPS IP地址
- 根密碼或SSH密鑰
- 選定的操作系統版本
- 伺服器區域
- 域名(如果有的話)
- 應用運行時,例如Node.js、Python、PHP或Docker
- 預期的應用端口,例如
3000
然後按照以下順序進行:
- 通過SSH登錄。
- 更新伺服器。
- 創建一個非根的sudo用戶。
- 添加SSH密鑰登錄。
- 配置防火牆。
- 安裝運行時和網頁伺服器。
- 部署應用。
- 添加Nginx反向代理。
- 將域名DNS指向VPS。
- 啟用HTTPS。
- 添加進程管理器和備份。
這個順序可以避免許多初學者的錯誤。
4. 步驟教程:在新的VPS上部署小型應用
步驟1:連接到伺服器
將YOUR_SERVER_IP替換為您的VPS公共IP:
ssh root@YOUR_SERVER_IP如果您的提供商使用SSH密鑰,請指定您的私鑰:
ssh -i ~/.ssh/your_key root@YOUR_SERVER_IP登錄後,確認操作系統:
lsb_release -a步驟2:更新軟件包
apt update
apt upgrade -y
reboot重啟後重新連接:
ssh root@YOUR_SERVER_IP步驟3:創建一個Sudo用戶
創建一個名為deploy的用戶:
adduser deploy
usermod -aG sudo deploy現在將您的SSH密鑰複製到新用戶:
rsync --archive --chown=deploy:deploy ~/.ssh /home/deploy從您的本地機器測試新登錄:
ssh deploy@YOUR_SERVER_IP確認sudo是否正常工作:
sudo whoami預期輸出:
root步驟4:加強SSH登錄
打開SSH伺服器配置:
sudo nano /etc/ssh/sshd_config設置或更新這些行:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes重啟SSH:
sudo systemctl restart ssh重要提示:保持當前終端打開,並在關閉之前測試新的SSH會話。如果您的密鑰登錄失敗,請在斷開連接之前修復它。
步驟5:配置防火牆
安裝並啟用UFW:
sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status除非您有特定原因,否則不要將您的應用端口,例如3000,公開到互聯網。
步驟6:安裝Node.js
從NodeSource安裝Node.js LTS:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install nodejs -y
node -v
npm -v如果您的應用使用Python、PHP、Go或Docker,請安裝相應的運行時。部署結構類似:應用在本地運行,Nginx公開暴露。
步驟7:創建一個簡單的測試應用
創建一個應用目錄:
mkdir -p ~/apps/hello-vps
cd ~/apps/hello-vps
npm init -y
npm install express創建server.js:
nano server.js粘貼這個小型Express應用:
const express = require("express");
const app = express();
const port = process.env.PORT || 3000;
app.get("/", (req, res) => {
res.send("Hello from my first VPS deployment.");
});
app.get("/health", (req, res) => {
res.json({ ok: true });
});
app.listen(port, "127.0.0.1", () => {
console.log(`App listening on http://127.0.0.1:${port}`);
});運行它:
node server.js在另一個SSH會話中,測試它是否在本地運行:
curl http://127.0.0.1:3000/health預期輸出:
{"ok":true}使用Ctrl+C停止應用。
步驟8:使用PM2保持應用運行
安裝PM2:
sudo npm install -g pm2
cd ~/apps/hello-vps
pm2 start server.js --name hello-vps
pm2 save
pm2 startuppm2 startup命令會打印另一個命令。精確地複製並運行該命令。然後檢查:
pm2 statusPM2確保您的應用在崩潰或伺服器重啟後重新啟動。
步驟9:安裝Nginx
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx在瀏覽器中打開您的伺服器IP:
http://YOUR_SERVER_IP您應該會看到默認的Nginx頁面。
步驟10:配置Nginx反向代理
創建一個新的Nginx配置:
sudo nano /etc/nginx/sites-available/hello-vps如果您還沒有域名,則使用伺服器IP作為server_name _;:
server {
listen 80;
server_name _;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}啟用該站點:
sudo ln -s /etc/nginx/sites-available/hello-vps /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx現在訪問:
http://YOUR_SERVER_IP您應該會看到:
Hello from my first VPS deployment.步驟11:將您的域名指向VPS
在您的域名DNS面板中,添加一個A記錄:
| 類型 | 名稱 | 值 |
|---|---|---|
| A | @ | YOUR_SERVER_IP |
| A | www | YOUR_SERVER_IP |
DNS可以在幾分鐘內更新,但有時需要更長時間。您可以檢查:
dig yourdomain.com在DNS正常工作後,更新您的Nginx配置:
sudo nano /etc/nginx/sites-available/hello-vps將:
server_name _;更改為:
server_name yourdomain.com www.yourdomain.com;重新加載Nginx:
sudo nginx -t
sudo systemctl reload nginx步驟12:使用Certbot啟用HTTPS
安裝Certbot:
sudo apt install certbot python3-certbot-nginx -y請求證書:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com測試續期:
sudo certbot renew --dry-run現在您的應用應該可以在以下地址加載:
https://yourdomain.com5. 在宣布部署完成之前要檢查的事項
快速檢查清單:
ssh deploy@YOUR_SERVER_IP可以正常工作- 禁用了根SSH登錄
- 如果配置了SSH密鑰,則禁用了密碼SSH登錄
sudo ufw status僅顯示SSH、HTTP和HTTPSpm2 status顯示應用在線sudo nginx -t通過- 域名指向正確的IP
- HTTPS正常工作
- 應用秘密未提交到Git
- 至少有一個備份或快照
這是“它運行”和“它合理地準備好供真實用戶使用”之間的區別。
6. 何時使用LightNode VPS對初學者來說是個好選擇
LightNode並不是唯一的VPS提供商,但在幾種情況下,它對首次用戶來說是一個實用的選擇:
- 您希望在學習期間按小時計費
- 您需要在選擇之前測試多個區域
- 您想要一個簡單的Linux VPS來運行小型應用
- 您需要全球VPS位置
- 您希望快速部署,而不必導航複雜的企業雲面板
- 您尚未準備好承諾長期的每月或每年計劃
對於第一次的小型應用,我會從以下開始:
- Ubuntu 22.04或24.04
- 1-2 vCPU
- 1-2 GB RAM
- NVMe/SSD存儲
- 離您的用戶最近的伺服器位置
如果您稍後需要更多資源,則在擁有真實流量數據後再升級。這通常比在第一天就猜測過高要好。
您可以在這裡查看LightNode: https://go.lightnode.com?ref=fa725d7f&id=58
7. 排除首次VPS常見問題
SSH顯示權限被拒絕
檢查:
- 您是否使用正確的用戶名
- 您的SSH密鑰是否已加載
- 提供商是否正確安裝了您的公鑰
- 在測試密鑰登錄之前,是否禁用了密碼登錄
嘗試:
ssh -v deploy@YOUR_SERVER_IP詳細輸出通常顯示身份驗證失敗的原因。
應用在本地運行但在瀏覽器中無法訪問
檢查:
- 應用是否正在使用PM2運行
- 應用是否在
127.0.0.1:3000上監聽 - Nginx代理是否指向相同的端口
- 防火牆是否允許
80和443 - Nginx配置測試是否通過
有用的命令:
pm2 logs hello-vps
sudo nginx -t
sudo systemctl status nginx
curl http://127.0.0.1:3000/health域名未指向VPS
檢查DNS:
dig yourdomain.com
dig www.yourdomain.com確保返回的IP與您的VPS IP匹配。如果不匹配,請等待DNS傳播或修復DNS記錄。
Certbot失敗
常見原因:
- DNS尚未指向伺服器
- 端口
80被阻塞 - Nginx配置有錯誤
server_name中的域名錯誤
測試:
sudo nginx -t
sudo ufw status
curl -I http://yourdomain.com伺服器內存不足
檢查內存:
free -h
pm2 monit對於1 GB的VPS,考慮添加交換空間:
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab交換空間並不是足夠RAM的替代品,但可以防止小型伺服器在安裝包或流量激增期間崩潰。
8. 對首次VPS用戶的最終建議
您的第一個VPS不需要完美。它需要易於理解、足夠安全且易於重建。
保持設置簡單:
- 一個應用
- 一個網頁伺服器
- 一個域名
- 一個進程管理器
- 一個備份計劃
在您理解基本概念之前,避免在同一小型VPS上安裝重型控制面板、多個數據庫、Docker集群、電子郵件伺服器、分析工具和實驗性腳本。
一旦您能夠乾淨地部署小型應用,您就可以進一步學習Docker、CI/CD、管理數據庫、監控儀表板和更高級的基礎設施。
FAQ
我應該為我的第一個小型應用租用什麼大小的VPS?
對於基本的Node.js、Python或靜態網頁應用,從1 vCPU和1-2 GB RAM開始。如果您還在同一伺服器上運行數據庫,則2 vCPU和2-4 GB RAM會更舒適。
Ubuntu對初學者來說好嗎?
是的。Ubuntu LTS通常是最佳的首選,因為它擁有廣泛的文檔、穩定的包支持,並且與Nginx、Node.js、Python、Docker、Certbot和常見的部署工具兼容良好。
我應該使用根用戶還是創建其他用戶?
創建另一個具有sudo權限的用戶。僅在初始設置或緊急恢復時使用根用戶。日常SSH訪問應使用非根用戶並使用SSH密鑰身份驗證。
小型應用需要Nginx嗎?
在大多數情況下,是的。您的應用可以在私有本地端口上運行,而Nginx處理公共HTTP/HTTPS流量、域名路由、壓縮和反向代理行為。
我應該將端口3000開放到互聯網嗎?
通常不應該。保持應用端口私有,僅通過Nginx公開80和443。這樣可以減少公共暴露面,並使HTTPS更容易。
LightNode適合第一次VPS嗎?
是的,特別是如果您希望靈活計費、快速部署和多個全球位置。LightNode非常適合學習、測試、小型應用、輕量級生產工作負載,以及不想立即承諾大型伺服器計劃的用戶。
如果我的代碼在GitHub上,我還需要備份嗎?
是的。Git存儲您的源代碼,但可能不會存儲您的數據庫、上傳的文件、環境變量、Nginx配置或伺服器特定的更改。請單獨保留備份或快照。
我可以在一個VPS上托管多個應用嗎?
可以,但初學者應該先從一個應用開始。在您理解Nginx伺服器塊、PM2進程名稱、防火牆規則和資源使用情況後,在一個VPS上托管多個小型應用會變得更容易。
我什麼時候應該升級我的VPS?
當監控顯示持續的CPU壓力、低內存、慢數據庫性能、磁碟限制或流量增長時升級。不要僅因為應用感覺重要而升級。升級是因為指標顯示當前計劃已不再足夠。
VPS對初學者來說是否比共享主機更好?
共享主機對於簡單的網站來說更容易,但VPS給您更多的控制權。如果您想學習部署、運行自定義應用、使用SSH、配置Nginx、安裝包或托管API,VPS是更好的學習路徑。