對於任何技術愛好者或專業人士來說,建置自己的Linux伺服器都是一項基本技能,它能讓你完全掌控自己的伺服器環境。本綜合指南將帶您逐步了解如何建置Linux伺服器,從硬體選擇到部署進階配置。

為什麼要建置自己的Linux伺服器?

選擇自建Linux伺服器而不是選擇託管服務方案,可以獲得前所未有的靈活性和學習機會。全球排名前一百萬的網域中約96.3%都由Linux伺服器提供支援,這使得Linux伺服器專業知識變得越來越有價值。

主要優勢包括:

  • 完全控制硬體資源
  • 可客製化的安全配置
  • 長期部署的成本效益
  • 技術專業人員的寶貴學習經驗

硬體選擇和服務商對比

選擇伺服器硬體時,請考慮以下關鍵規格:

最低推薦配置:
CPU:4核(Intel Xeon或AMD EPYC)
記憶體:8GB DDR4
儲存:240GB SSD
網路:1Gbps埠口,每月5TB流量
伺服器類型主要特點最適用於
虛擬專用伺服器(VPS)靈活配置,快速部署中小型Web應用
專用伺服器專屬硬體資源大型資料庫應用
雲端伺服器全球節點分布跨區域業務部署

Linux系統安裝和初始設定

對於伺服器部署,請選擇穩定的Linux發行版。常用選擇包括Ubuntu Server LTS、CentOS或Debian。以下是使用Ubuntu Server的簡化安裝過程:

# 首先,使用Ubuntu Server ISO建立可開機USB
# 從USB開機並執行以下初始設定命令:

# 更新軟體套件清單
sudo apt update && sudo apt upgrade -y

# 安裝基本軟體套件
sudo apt install -y vim curl wget htop net-tools

# 設定時區
sudo timedatectl set-timezone UTC

# 配置主機名稱
sudo hostnamectl set-hostname your-server-name

基本安全配置

伺服器安全應該是您的首要任務。安裝後立即實施這些關鍵的安全措施:

# 建立具有sudo權限的非root使用者
sudo adduser admin
sudo usermod -aG sudo admin

# 配置SSH金鑰認證
# 在本機上:
ssh-keygen -t ed25519 -C "your_email@example.com"
ssh-copy-id admin@your_server_ip

# 修改SSH配置
sudo vim /etc/ssh/sshd_config

# 新增/修改這些行:
PermitRootLogin no
PasswordAuthentication no
Port 2222  # 更改預設SSH埠口
AllowUsers admin

# 重新啟動SSH服務
sudo systemctl restart sshd

# 配置UFW防火牆
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp  # 新SSH埠口
sudo ufw enable

Web伺服器部署

Nginx因其效能和簡單性而廣受歡迎。以下是基本的安全設定:

# 安裝Nginx
sudo apt install nginx -y

# 建立伺服器區塊配置
sudo vim /etc/nginx/sites-available/yourdomain.conf

# 基本Nginx配置與安全標頭資訊
server {
    listen 80;
    server_name yourdomain.com;
    root /var/www/yourdomain;

    # 安全標頭資訊
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";
    
    location / {
        try_files $uri $uri/ =404;
    }
}

# 啟用配置
sudo ln -s /etc/nginx/sites-available/yourdomain.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

效能優化和監控

實施適當的監控和優化技術可確保您的Linux伺服器保持最佳效能。讓我們設定基本的監控工具和優化配置:

系統監控設定

# 安裝Prometheus用於指標收集
sudo apt install -y prometheus

# 安裝Node Exporter用於硬體/作業系統指標
sudo apt install -y prometheus-node-exporter

# 安裝Grafana用於視覺化
sudo apt install -y grafana

# 啟用並啟動服務
sudo systemctl enable prometheus
sudo systemctl start prometheus
sudo systemctl enable prometheus-node-exporter
sudo systemctl start prometheus-node-exporter
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

需要監控的關鍵指標包括:

  • CPU使用率和負載平均值
  • 記憶體使用率和交換空間使用情況
  • 磁碟I/O和儲存容量
  • 網路吞吐量和連接狀態

效能調校

透過以下系統級調整優化伺服器效能:

# 調整核心參數以提高效能
sudo vim /etc/sysctl.conf

# 新增或修改這些行:
# 增加系統檔案描述符限制
fs.file-max = 2097152

# 優化網路效能
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# 套用更改
sudo sysctl -p

# 優化SSH連接
sudo vim /etc/ssh/sshd_config
ClientAliveInterval 300
ClientAliveCountMax 2

# 配置系統限制
sudo vim /etc/security/limits.conf
* soft     nofile     65535
* hard     nofile     65535

備份策略和災難復原

使用rsync和cron實現自動備份系統:

# 建立備份腳本
sudo vim /usr/local/bin/backup.sh

#!/bin/bash
BACKUP_DIR="/backup"
DATETIME=$(date +%Y%m%d_%H%M%S)
rsync -avz --delete /var/www/ $BACKUP_DIR/www_$DATETIME/
rsync -avz --delete /etc/ $BACKUP_DIR/etc_$DATETIME/

# 使腳本可執行
sudo chmod +x /usr/local/bin/backup.sh

# 新增至crontab
sudo crontab -e
0 2 * * * /usr/local/bin/backup.sh

定期維護任務應包括:

  • 自動安全更新
  • 日誌輪替和分析
  • 磁碟空間監控
  • 資料庫優化

常見問題故障排除

遇到伺服器問題時,請遵循以下系統方法:

# 檢查系統日誌
sudo journalctl -xe

# 監控即時系統統計資訊
htop

# 檢查磁碟使用情況
df -h
du -sh /*

# 監控網路連接
netstat -tupln
ss -tunlp

對於任何從事Web基礎設施工作的技術專業人員來說,理解Linux伺服器管理都是至關重要的。無論您是託管應用程式、管理資料庫還是執行開發環境,這些Linux伺服器設定和維護的基礎知識都將為您的技術之路奠定堅實的基礎。