🌙 深夜 coding · 直播分享

我 Vibeeeeeeeeerrrrrr 出一个网页后,
怎么让全世界看到它?

file://https:// · 一节课讲清部署

山河同学livestream · 90 min · 含现场实操

agenda

今晚要讲的 5 件事

01为什么 localhost 链接发朋友打不开 · URL 入门~12min
02网页崩了别慌 · 错误码图鉴 + 找 AI 排查的姿势~10min
03部署的三种段位 · Vercel / 宝塔 / Nginx~25min
04让 AI 当你的运维副驾~8min
05🔥 现场实操:Vibe 出一个东西 + 部署上公网~30min

// part 01 · 为什么部署

"我把链接发给朋友,
他说打不开……"

你的网页住在你的电脑里。
它需要先搬到一台一直开着的电脑
才能让全世界访问到。

这件事就叫 部署 / Deploy

// part 01 · url 入门

浏览器地址栏的三种状态

📁 file://

「我在读自己硬盘里的文件」

file:///Users/zhangsan/index.html

发给朋友 → 打不开。因为他电脑里没那个文件。

🏠 localhost / 127.0.0.1

「我自己电脑当了服务器」

http://localhost:3000

发给朋友 → 也打不开。服务器只对自己开放。

🌐 公网 URL

「真正能让别人访问到」

https://myapp.vercel.app

这才是部署之后拿到的链接。

// part 01 · url 拆解

公网 URL 长什么样?

https://www.example.com:443/blog/post?id=42
协议怎么通信
http / https
域名方便人记
example.com
端口同一台机的房间号
80 / 443 / 3000
路径具体哪个页面
/blog/post
参数额外信息
?id=42

域名背后真正的地址是 IP · 比如 110.242.68.66
DNS 就是把名字翻译成IP的电话簿。

// part 02 · 错误码

网页崩了?先看三个家族

↪️ 3xx · 重定向

不是错误,是"往别处去"。比如 301(永久跳转)、302(临时跳转)。看到这个不用慌。

😵 4xx · 你的锅

请求本身有问题——地址写错、没权限、没登录。
关键词:客户端问题。

🔥 5xx · 服务器的锅

请求没错,服务器自己挂了 / 配置错了 / 跑得太慢。
关键词:去服务器看日志。

记住这一条 → 看到 4xx 看自己请求,看到 5xx 看后端日志。

// part 02 · 错误码

你最常遇到的6 个错误码

名字大白话多半是谁的锅
404Not Found这个地址压根没东西路由没配 / 文件路径错 / 部署没成功
403Forbidden东西在,但不让你看权限 / 防火墙 / Nginx 不让访问
500Internal Server Error服务器代码炸了后端代码报错,看 stack trace
502Bad GatewayNginx 找后端,后端没回Node 进程挂了 / 端口写错
503Service Unavailable服务器累趴了 / 在维护负载过高 / 临时下线 / 限流
504Gateway Timeout后端在干活但太慢,Nginx 等不及了死循环 / 慢查询 / 外部 API 超时

同样是 404,浏览器原生页 vs 你网站样式 → 锅在的位置完全不同。

// part 02 · 提问姿势

把报错喂给 AI 的正确姿势

❌ 差的提问

"我网页 502 了怎么办?"

AI 只能给你 8 个通用建议,照着试一遍,可能哪个都不对。

✅ 好的提问

"我的 Next.js 部署在 VPS,Nginx 反代到 :3000。刚 push 完代码后 502。"

+ nginx error log 末尾 50 行
+ systemctl status myapp 输出
+ 操作系统 / Node 版本

求救 5 件套(背下来)

  1. 我做了什么 — 部署 / 改了 nginx / 升级了依赖
  2. 期望看到什么 — 正常页面
  3. 实际看到什么 — 错误码 + 截图
  4. 关键日志原文 — 不是"日志说有错",是把日志贴进来
  5. 环境 — 平台 / 系统 / 版本号

// part 03 · 部署的三档段位

部署的三种段位

TIER 1
🚀 托管平台
Vercel / Netlify / Cloudflare Pages
  • ✓ 推 GitHub 自动部署
  • ✓ 30 秒上线 · 免运维
  • ✓ 自带 HTTPS + 全球 CDN
  • 90% 个人项目用这个
本场覆盖:第 10 · 11 页
TIER 2
🎛️ 自己服务器 + 宝塔
点点点的可视化面板
  • ✓ 数据存自己手里
  • ✓ 跑长任务无限制
  • ✓ 国内可备案
  • ✓ 适合稍有需求的玩家
本场覆盖:第 12 · 13 页
TIER 3
⚙️ 纯命令行
Nginx + systemd + Certbot
  • ✓ 完全控制
  • ✓ 适合学习底层原理
  • ✓ AI 协助效率非常高
  • ✓ 初次部署 2 小时跑通
本场覆盖:第 14-16 页

⚠️ 能用懒的,绝不上硬核的。不要一上来就开 VPS 写 Nginx——那是劝退新手最快的路。

// part 03 · tier 1

Tier 1 · Vercel 一键部署

  1. 代码推到 GitHub
  2. 打开 vercel.com,用 GitHub 登录
  3. Add New → Project
  4. 选你的仓库,点 Import
  5. 框架自动识别,一般不用改
  6. 有 API Key 就填 Environment Variables
  7. Deploy,等 30 秒
  8. 拿到 https://你的项目.vercel.app 🎉

之后每次 git push自动重新部署

# 也可以走 CLI(让 AI 帮你跑) npm i -g vercel cd my-app vercel login # 部署到预览环境 vercel # 部署到生产环境 vercel --prod # 或者直接对 Claude Code 说: # 「帮我把当前项目部署到 Vercel 生产环境」

// part 03 · 自定义域名

想要专属域名?三步搞定

01
买域名

国内 → 阿里云万网 / 腾讯云 DNSPod(要备案)
国际 → Cloudflare Registrar(成本价)/ Namecheap(无需备案)

02
接入 Cloudflare(免费 CDN + HTTPS + 防 DDoS)

在 Cloudflare 添加站点 → 把域名注册商的 NS 换成 Cloudflare 给的两个地址 → 等 5-30 分钟生效。

03
在 Vercel 绑定域名

Project → Settings → Domains → 输入域名 → 按 Vercel 提示在 Cloudflare 加一条 CNAME → 几分钟后看到 Valid Configuration → 完成 🎉

⚠️ 服务器在国内必须备案 · 7-20 工作日 · 用 Vercel 等海外平台无需备案但国内访问会慢。

// part 03 · tier 2

Tier 2 起手式 · 买 VPS + 登服务器

🇨🇳 国内(要备案)

阿里云 ECS · ¥99/年起 · 备案首选
腾讯云轻量 · ¥99/年起 · 微信生态好
华为云 · ¥99/年起 · 政企合规

🌍 国外(免备案)

Hetzner · ~$4/月 · 性价比之王
DigitalOcean · $6/月 · 文档完善
Vultr · $6/月 · 亚太节点

第一次 SSH 登服务器

# 在自己电脑的终端输入 ssh root@123.45.67.89 # 第一次问 Are you sure? 输 yes # 然后输密码(输入不显示) # 进去后改 root 密码 passwd # 更新系统补丁 apt update && apt upgrade -y # 配防火墙(云控制台或 ufw) # 只开 22 / 80 / 443

// part 03 · tier 2

Tier 2 · 宝塔面板:给 Linux 装图形界面

一行命令装宝塔

# Ubuntu / Debian wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh \ && sudo bash install.sh ed8484bec # 装完打印:面板地址 / 用户名 / 密码 # 截图存好!

访问 http://你的IP:8888/随机串 进入面板

5 步建站

  1. 登录面板
  2. 装环境套餐 → LNMP 或单装 Nginx
  3. 网站 → 添加站点(填域名 / 根目录)
  4. 把代码拖进站点根目录(或 Git 克隆)
  5. SSL → Let's Encrypt → 一键申请 + 强制 HTTPS

跑 Node 项目

软件商店搜「Node.js 版本管理器」→ 添加项目 → 选 Node 版本 + 启动命令 → 自动用 PM2 常驻 → 网站设置加反向代理到 127.0.0.1:3000 → 🎉

// part 03 · tier 3

Tier 3 · Nginx + systemd 架构

step 1
👤 浏览器
用户访问 https://example.com
step 2
🔀 Nginx
监听 80 / 443,处理 HTTPS,反向代理
step 3
🟢 Node 进程
监听 127.0.0.1:3000,真正的应用
─── HTTPS ───→ ─── HTTP ───→

📌 systemd

24 小时保安。让 Node 进程开机自启 + 崩溃自动重启。你睡觉它也在工作。

🔒 Certbot

免费 HTTPS 证书自动续期机器人。一行命令拿到小绿锁,一辈子不用再管。

四个角色配合 = 一个能扛真实流量的自托管站点

// part 03 · tier 3

Nginx + systemd 实操

Nginx 反代到 :3000

# /etc/nginx/sites-available/myapp.conf server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; } } # 软链 + 测试 + 重载 ln -s sites-available/myapp.conf sites-enabled/ nginx -t && systemctl reload nginx

systemd 让 Node 永生

# /etc/systemd/system/myapp.service [Service] User=ubuntu WorkingDirectory=/var/www/myapp ExecStart=/usr/bin/node server.js Restart=always Environment=NODE_ENV=production Environment=PORT=3000 [Install] WantedBy=multi-user.target # 启动 + 开机自启 + 看日志 systemctl daemon-reload systemctl enable --now myapp journalctl -u myapp -f

新手 3 大翻车点 → 忘了 nginx -t·安全组没开 80/443·端口写错

// part 03 · tier 3

免费 HTTPS · Certbot 一行命令

# 装 certbot sudo apt install certbot python3-certbot-nginx -y # 申请证书 + 自动改 Nginx 配置 + 80 自动跳 443 sudo certbot --nginx -d example.com -d www.example.com # 测试自动续期(90 天到期前会自动跑) sudo certbot renew --dry-run

✅ 跑完这条会发生什么

• 你的网站获得 Let's Encrypt 免费 SSL 证书
• Nginx 配置被自动改成 listen 443 ssl
• HTTP 80 自动 301 跳到 HTTPS 443
• 浏览器小绿锁变绿 🎉

📅 之后呢

证书 90 天有效,Certbot 自动续期。

一辈子不用再管。

// part 04 · ai 副驾

让 AI 当你的运维副驾

排错三件套(喂给 AI)

# Nginx 错误日志 sudo tail -n 100 /var/log/nginx/error.log # 应用日志 sudo journalctl -u myapp -n 100 --no-pager # 服务状态 sudo systemctl status nginx myapp

让 AI 直接登服务器干活

"请帮我 ssh 到 root@1.2.3.4,看 myapp.service 为什么失败。
关键命令在执行前先告诉我。"

现成的 Prompt 模板

📝 让 AI 写 Nginx 配置
"前端 Vite 静态文件在 /var/www/myapp/dist,/api/* 反代到 :8000,开 gzip,缓存 30 天,SPA fallback。给完整配置 + 每段解释。"

🚀 GitHub Actions 自动部署
"帮我写一个 GitHub Actions,push 到 main 后自动 ssh 到我的 VPS,git pull + npm install + systemctl restart myapp。"

🔍 故障定位
"为什么 502?给我 5 个最可能的原因,按概率从高到低。结合下面日志判断:[贴日志]"

⚠️ 红线:删除 / 覆盖配置 / 重启 DB 等不可逆操作,必须"先告诉我再执行"。

// part 05 · live demo + closing

🔥 现场实操 + 三档自查表

现场实操流程(30 min)

跟弹幕一起出题

5 分钟,做啥现场投票

Claude Code Vibe 出代码

15 分钟,跟着我一起看 AI 怎么干活

Vercel 一键部署

5 分钟拿到公网链接

故意翻车演练

5 分钟,制造一个 502,AI 协助定位

三档套餐自查表

场景推荐耗时
作品集 / DemoVercel5 min
想绑自己域名Vercel + CF20 min
面向国内 / 备案ECS + 宝塔1 day
严肃项目 / 学底层VPS + Nginx2 h

🌙 能用托管,绝不开服务器。能用宝塔,绝不上命令行。

S 演讲者视图 · T 切换主题 · ← → 翻页 · F 全屏 · O 总览 · R 重置计时