阿克森雲登入 / 註冊English/中文/cn繁體/tw

第 5 課 · 上線你的第一個網站:域名 → 服務器 → HTTPS

互聯網從零 · L1 · 第 5 / 6 節 · 約 3 分鍾

這一課把「有個想法」到「https:// 可訪問」的全流程走一遍。四步,每步都有驗證命令——做完一步驗一步,不要一口氣改完再排查,否則出了問題你都不知道該懷疑哪一層。

建站四步流程圖:買域名、DNS 指向、Web 服務、HTTPS

第一步:買域名

選信譽好的註冊商,開啓 WHOIS 隱私保護,並打開註冊商鎖與賬號二次驗證——域名被盜是最致命的事故,找回周期以周計,期間你的站點、郵件全部癱瘓。業務面向國內用戶且服務器在中國內地時,需完成 ICP 備案(接入商協助辦理);港/新/日/美等海外機房無備案要求,解析生效即可上線。

第二步:DNS 指向

在解析面板添加 A 記錄:@ → 服務器 IPv4,www → 同一 IP(或 CNAME 指向主域名);服務器有 IPv6 就同時加 AAAA 記錄——移動網絡下 IPv6 可達性直接影響打開成功率。改完立即驗證:

# 應返回你服務器的 IP;沒生效就換公共 DNS 復測,排除本地緩存
dig example.com +short
dig www.example.com +short
dig @223.5.5.5 example.com +short

第三步:跑起 HTTP 服務

最簡單路徑是 Nginx 託管靜態頁;動態站可選 Node/PHP 等運行時,也可以用 Serverless 先跑起來、驗證業務後再遷移到服務器。以靜態站爲例:

# Debian/Ubuntu:安裝並啓動 Nginx,設置開機自啓
apt update && apt install -y nginx
systemctl enable --now nginx
# 放一個測試頁並驗證本機響應
echo '<h1>Hello Axion</h1>' > /var/www/html/index.html
curl -sI http://127.0.0.1 | head -n 1
# 防火牆放行 80/443(ufw 示例),然後看狀態
ufw allow 80/tcp && ufw allow 443/tcp && ufw status
# 配置改動永遠先測試再重載
nginx -t && systemctl reload nginx

多站點場景用「服務器塊」(server block)按域名分流:每個域名一個設定文件,放在 /etc/nginx/sites-available/ 並軟鏈到 sites-enabled/,改完同樣先 nginx -t 再 reload。

第四步:HTTPS 與自動續期

用 ACME 協議籤發免費證書(Let's Encrypt / ZeroSSL),有效期約 60–90 天,靠自動續期任務滾動更新:

# acme.sh 示例:webroot 方式籤發(不停站)
acme.sh --issue -d example.com -d www.example.com -w /var/www/html
# 安裝證書並綁定 reload 命令(續期後自動生效)
acme.sh --install-cert -d example.com --key-file /etc/nginx/ssl/example.key \
  --fullchain-file /etc/nginx/ssl/example.pem --reloadcmd "systemctl reload nginx"
# 驗證證書鏈與到期日
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates

再把 HTTP 強制跳轉 HTTPS(Nginx 一條 return 301 即可),並確認續期任務真的在跑:acme.sh --cron --home ~/.acme.sh 手動觸發一次看輸出。證書過期是低級但高頻的事故——把到期日檢查放進你的監控。

上線核對清單

  • favicon、404 頁、標題與描述(搜索引擎與分享卡片的第一印象);
  • 開啓 gzip/brotli 壓縮與靜態資源緩存頭;
  • www 與非 www 統一(301 到同一主域,避免權重分裂);
  • 備份任務已配置且做過一次恢復演練(第 6 課展開)。

常見三個坑

  • 證書續期任務沒加監控——過期當天全站告警;
  • 只配了 @ 忘了 www(或反之)——用戶輸哪個都該能打開;
  • 防火牆忘了放行 443——HTTP 能開 HTTPS 打不開,九成是這個。

Nginx 多站點:一個 server 塊的樣子

# /etc/nginx/sites-available/blog.example.com
server {
    listen 80;
    server_name blog.example.com;
    root /var/www/blog;
    index index.html;
    location / { try_files $uri $uri/ =404; }
}
# 啓用站點:軟鏈到 sites-enabled,先測再載
ln -s /etc/nginx/sites-available/blog.example.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

動態站在此基礎上把 location / 改成反向代理(proxy_pass 到本機 Node/PHP 進程),Web 服務器負責 TLS、壓縮與靜態文件,應用進程只管業務邏輯——這是最常見的分工。

三條技術路徑怎麼選

  • 純靜態(HTML/生成器產物):最便宜、最安全、天然可套 CDN,適合官網與博客;
  • 動態運行時(Node/PHP/Python):需要數據庫與表單交互時選它,代價是要自己管進程、更新與備份;
  • Serverless/Pages:零運維起步,流量小幾乎免費;業務長大或需要長連接、定時任務時再遷回服務器。

路徑可以遷移,數據不能丟——無論選哪條,第 6 課的備份紀律從第一天就要生效。

上線後第一周的搜索側基礎

給每個頁面唯一的標題與描述;www 與非 www 用 301 統一到同一主域;提交 sitemap 到搜索引擎站長平臺;給圖片補 alt 文本。這些動作花不了一個小時,卻決定了搜索引擎第一次認識你站點的方式。

切換前的雙保險:備份與回滾

任何一次「換服務器/換解析」動作,先做兩件事再動手:其一,把當前站點完整備份(文件 + 數據庫 + 現有解析記錄截圖),備份放到與本站不同的機器或對象存儲上;其二,寫好回滾路徑——舊服務器保持運行至少四十八小時,DNS 的 TTL 提前一到兩天調低,一旦新環境出問題,把 A 記錄改回舊 IP 即可在分鍾級恢復。記住順序:新機器並行跑通並驗證 → 低 TTL 窗口內切換 → 觀察 → 確認無誤後才下線舊機。跳過任何一步的「直接切」,都是在拿站點的可用性賭運氣。

本節小結

  1. 四步上線:域名(註冊商鎖+2FA)→ A/AAAA 記錄(dig 驗證)→ Nginx(防火牆放行 + 先測後載)→ ACME 證書(自動續期+到期監控)。
  2. 每步做完立即驗證:dig / curl / openssl s_client 三件套與步驟一一對應。
  3. 上線前過核對清單:404 頁、壓縮、www 統一跳轉、備份可恢復。