8. 实战:部署静态页
这是什么:一次完整的静态页部署——把前 7 章的 SSH、apt、目录、权限、服务全用上,让一个页面在公网上跑起来。
为什么用:前面每章都是零件,单独学都会,可你想让朋友访问自己的站点时,卡住的往往是怎么把它们拼起来。这一章就是那次拼装。
如何用:本章按「登录 → 装 nginx → 放 HTML → 配站点 → 启服务 → 开端口」六步走一遍,最后对照排查清单收尾。
8.1 步骤总览
SSH 进机 → apt 装nginx → 目录放 HTML → 配置 nginx 站点 → 启动服务 → 外网访问
8.2 操作序列(跟着敲)
① 登录并装 nginx
ssh -i ~/.ssh/my_key.pem root@1.2.3.4
sudo apt update && sudo apt install -y nginx
② 布置站点文件
mkdir -p /srv/mysite
nano /srv/mysite/index.html
写一段内容保存(就是 HTML 教程里那个骨架):
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8" /><title>我的服务器</title></head>
<body><h1>部署成功!</h1><p>这是来自 Ubuntu 服务器的一份问候 🐸</p></body>
</html>
③ nginx 配置
sudo nano /etc/nginx/sites-available/mysite
server {
listen 80;
server_name 1.2.3.4; # 或你的域名
root /srv/mysite;
index index.html;
}
启用并重载:
sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/
sudo nginx -t # 语法检查(看到 ok 才 reload)
sudo systemctl reload nginx
④ 验证
curl http://localhost # 本机
在浏览器打开 http://1.2.3.4(云服务器记得安全组放行 80——deploy 教训)。
你会看到:浏览器 renders「部署成功!」
8.3 常见问题排查清单
| 症状 | 查 |
|---|---|
| 浏览器 404 | root 路径拼错、sites-enabled 软链没建 |
| connection refused | nginx 没跑:systemctl status |
| curl 本地通但外网不通 | 云安全组 80 未放行(最高频!) |
| 403 Forbidden | 权限不足:目录 x、文件 r(第 5 章) |
8.4 一条真相:部署就是这几步的循环
以后你部署任何应用(静态、Python 后端、Docker),流程骨干不变:
- 代码到位(git clone / rsync / scp)
- 依赖安装(apt、pip、npm——第 6 章)
- 常驻运行(systemd / nginx——第 7 章)
- 端口放行(云安全组 + 防火墙)
本博客的 部署与运维 文档就是这套流程的工程级版本,回头一定看得懂。
8.5 动手改
- 把 index.html 改标题重新加载,不重启 nginx 就生效(静态站热更)
- 给 /srv/mysite 加一张图片并放 HTML 里引用
- 查看
tail -f /var/log/nginx/access.log,然后在浏览器刷新页面,观察日志滚动
8.6 小结
- 一台 Ubuntu + nginx + systemctl = 你的线上网站
- 四步论:代码 → 依赖 → 常驻 → 端口,包治部署类 90% 问题
- 排障先本机 curl 外网心态,Security 安全组别忘检查
Linux 基础完成!下一步成为合格赛马:Git 入门 管好你的每一行代码 🐸