伺服器(Server)是專門設計用來管理資源、處理請求並為多個客戶端提供服務的電腦系統或軟體,可以是硬體設備也可以是運行特定服務的程式。它遵循「請求-回應」模式,接收來自瀏覽器、手機 App 或其他系統的請求,執行計算後返回資料,支撐網站、資料庫、雲端服務等現代應用基礎設施。
伺服器的雙重定義
伺服器有兩種主要定義,常引起混淆:
-
硬體伺服器:高性能電腦,具備強大 CPU、大量 RAM、大容量硬碟與冗餘電源,24/7 連續運行。
-
軟體伺服器:運行於硬體上的程式,如 Apache(網頁伺服器)、PostgreSQL(資料庫伺服器)、Node.js(應用伺服器)。
實際應用通常是兩者結合:硬體運行軟體伺服器程式。
伺服器類型分類
依服務功能分為多種類型:
| 類型 | 功能 | 範例軟體 |
|---|---|---|
| 網頁伺服器 | 提供 HTML/CSS/JS | Apache、Nginx、IIS |
| 應用伺服器 | 執行後端程式碼 | Tomcat、Node.js、Gunicorn |
| 資料庫伺服器 | 資料儲存與查詢 | MySQL、PostgreSQL、MongoDB |
| 檔案伺服器 | 大檔案存取與串流 | NFS、Samba、FTP |
| 郵件伺服器 | 電子郵件傳輸 | Postfix、Exchange |
| 遊戲伺服器 | 即時多人遊戲 | Unity Multiplayer、Unreal Engine |
客戶端-伺服器架構原理
核心是 C/S(Client-Server)模型:
客戶端請求 → 網路 → 伺服器處理 → 資料庫/API → 回應 → 客戶端顯示
瀏覽器 → HTTP → Nginx → Node.js → PostgreSQL → JSON → 網頁渲染
HTTP 請求流程:
-
瀏覽器發
GET /api/users -
Nginx 接收並轉發至 Node.js(埠 3000)
-
Node.js 查詢資料庫
SELECT * FROM users -
資料庫返回 JSON 陣列
-
Node.js 序列化回應
-
Nginx 返回 HTTP 200 + JSON
伺服器硬體架構特色
與個人電腦相比,伺服器強調:
-
高可用性:RAID 磁碟陣列、熱插拔電源、冗餘風扇
-
可擴展性:多 CPU 插槽、大量 DIMM 插槽
-
遠端管理:IPMI/BMC 獨立管理介面
-
ECC 記憶體:錯誤校正,防資料損壞
典型 1U 機架式伺服器:
雙 Intel Xeon CPU (32 核心)
512GB DDR4 ECC RAM
4 × 2TB NVMe SSD (RAID 10)
雙 10GbE 網卡
冗餘 800W 電源
常見伺服器軟體配置
LAMP 堆疊(Linux Apache MySQL PHP):
Linux (Ubuntu 22.04)
Apache 2.4 / Nginx 1.24
MySQL 8.0 / PostgreSQL 15
PHP 8.2 / Node.js 20
現代 MEAN/MERN 堆疊:
MongoDB + Express.js + React + Node.js
部署架構演進
| 時代 | 架構 | 特色 |
|---|---|---|
| 傳統 | 單機 | Apache + PHP + MySQL |
| 虛擬化 | VM | VMware、VirtualBox 多虛擬機 |
| 容器化 | Docker | 輕量隔離,快速啟動 |
| 容器編排 | Kubernetes | 自動擴展、自我修復 |
| 無伺服器 | Serverless | FaaS,按請求計費 |
Docker 容器範例:
# docker-compose.yml
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
depends_on:
- app
app:
build: ./backend
environment:
- DATABASE_URL=postgres://db:5432/app
db:
image: postgres:15
負載平衡與高可用
多台伺服器協作:
使用者請求 → 負載平衡器(LB) → 伺服器叢集(3-5 台)
↓
共享儲存(NAS/S3) + 快取(Redis)
常見 LB 演算法:
-
輪詢(Round Robin):平均分配
-
最少連線:分配給閒置伺服器
-
IP 雜湊:相同客戶端固定伺服器(Session 黏性)
雲端與邊緣運算伺服器
雲端實例:
-
AWS EC2:按小時計費,自動擴展
-
Google Cloud Run:容器即服務,按請求計費
-
Azure App Service:PaaS,零伺服器管理
邊緣運算:
CDN 節點 → 邊緣伺服器 → 快取熱門內容 → 低延遲回應
Cloudflare Workers、Fastly → 全球 300+ 節點
伺服器安全最佳實務
1. 最小權限原則:非 root 用戶執行服務
2. 定期更新:OS、套件、SSL 憑證
3. 防火牆:僅開放必要埠(80、443、22)
4. WAF:防 SQL 注入、XSS
5. 日誌監控:ELK、Prometheus
6. DDoS 防護:Cloudflare、AWS Shield
伺服器是互聯網的基石,從單機 Apache 到 Kubernetes 叢集,從傳統硬體到無伺服器,從單純網頁託管到 AI 推理服務。理解伺服器原理與架構,就能設計高效、安全、可擴展的系統,成為完整的全端工程師。