阿克森云登录 / 注册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 统一跳转、备份可恢复。