🧰 出发前:准备清单
本页所有步骤都可以点标题展开/收起,点过的会自动打勾记住进度(存在你浏览器里)。
📖 序章:服务器到底是个啥
把网站想象成开一家小卖部:
- 云服务器 = 你在市中心租的一个24 小时不关门的小铺面(4核4G 是铺面大小);
- SSH = 你手里的备用钥匙,随时进店理货;
- SFTP/scp = 进货通道,把家里的文件搬进店里;
- nginx = 请的店员,顾客要什么就从货架拿什么;
- 域名 = 店铺招牌,让人记住你;HTTPS = 装防盗门,顾客放心。
🥔 本教程每一步都对应真实服务器(域名 youweimiao.com)上的真实操作——你随时可以拿手机打开页尾的实战链接对照。
🗺️ 先看懂整张地图
网站上线,本质就是一条流水线:
SFTP 传文件
➡
小房子
➡
输网址就能看
💡 服务器不用装任何"引擎"——网页就是一堆文件(HTML/CSS/JS),放进房子、让门卫(nginx)发出去,完事。我们的土豆兄弟网页版就是这样上线的。
🎮 实战全记录:土豆兄弟是怎么上线的
2026-08-20,下面每一条命令都在 youweimiao.com 背后的服务器上真实执行过:
# 1. 登录(用户名是 ubuntu,不是 root!腾讯云默认如此)
ssh ubuntu@youweimiao.com
# 2. 本地把网页文件传到服务器家里
scp -r build/web/* ubuntu@youweimiao.com:/home/ubuntu/potato_web/
# 3. 搬进正式货架 /var/www/potato
sudo mv /home/ubuntu/potato_web /var/www/potato
sudo chmod -R 755 /var/www/potato
# 4. nginx 加一个"货架"
# (配置里写 location /potato/ { alias /var/www/potato/; ... })
# 5. 检查语法 + 重新加载(别用 restart,reload 不打断访问)
sudo nginx -t
sudo systemctl reload nginx
# 6. 浏览器打开 → 成功!
# https://youweimiao.com/potato/
🎮 去玩一把(真实线上版)
🌐 第五步·第六步:挂招牌 + 装防盗门
⑤ 域名怎么用
- 在域名商控制台加一条 A 记录:主机记录
@,记录值你的服务器公网IP;再一条www同理; - 等几分钟到几小时,用
ping youweimiao.com看解析; - nginx 配置里加
server_name youweimiao.com www.youweimiao.com;,reload; - 完事——域名直接打开你的网站。
⑥ HTTPS 小锁头
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d youweimiao.com -d www.youweimiao.com
# 证书90天一续,certbot 自动帮你续,别管它
🔒 没域名的阶段,IP 直连照样公网可见;域名生效后再补锁头。
🧭 出师之后的下一步学什么
🖥️ 小剧场:宝塔面板真的需要吗?
很多人以为"管服务器 = 宝塔"。不是的——宝塔只是给命令行套了一层网页皮肤,可有可无:
用宝塔
- 点点鼠标,适合纯小白
- 占内存、占端口
- 出问题不知道背后发生了什么
不用宝塔(本教程路线)
- 命令不多:ssh / scp / nginx 三样走天下
- 轻量干净,服务器只跑你的网站
- 每步都懂原理,出问题不慌
真实案例:这台服务器上"找不到宝塔"其实不是事故——没有它,博客和游戏照跑,教程也在跑。🐟
📚 学不动了?来这些地方充电
- Linux Journey(英文,图文闯关式 Linux 入门)
- 鸟哥的 Linux 私房菜(中文经典,当字典查)
- nginx 官方文档(配置语法以它为准)
- GitHub 上的漂亮博客:yujingblog.top · monoblog.cc.cd · yukino-blog.site(设计灵感来源)
🎴 命令速查卡(贴墙版)
ssh ubuntu@IP登录服务器scp -r 目录 ubuntu@IP:~/上传文件夹ls -la看目录内容sudo mv A B移动/改名sudo nano 文件编辑文件sudo nginx -t检查配置语法sudo systemctl reload nginx重载配置sudo systemctl status nginx看服务状态journalctl -u nginx -n 50看最新日志ping 域名查域名解析sudo ufw status看防火墙htop / df -h看负载/磁盘📝 成功日记:记录你的第一次上线
写下日期、部署了什么、踩了什么坑——存在你浏览器里,随时回来翻:
🧱 隐形门卫:云厂商的"安全组"
服务器外面还有一道你看不见的门——云厂商控制台里的安全组(防火墙)。哪怕服务器上一切正常,安全组不放行,外面照样连不进来:
常见翻车现场
- SSH 连不上 → 安全组没放行
22; - 网站打不开 → 没放行
80/443; - 宝塔面板进不去 → 面板端口(如 8888)没放行。
正确姿势
- 腾讯云控制台 → 云服务器 → 安全组;
- 入站规则放行:
22(SSH)、80(HTTP)、443(HTTPS); - 来源建议
0.0.0.0/0(网站要让所有人访问);SSH 可只对自己的 IP 开放更安全。
📖 真实案例:本机 8888 端口在安全组里"是开着的",但服务器上根本没装面板——所以进不去。安全组只是第一道门,服务要真的在跑才行。
🖱️ 不想敲命令?图形化工具一样行
上传文件也可以纯鼠标操作:
- 下载 WinSCP 或 FileZilla(免费);
- 新建连接:主机
youweimiao.com,端口 22,用户ubuntu,密码填你的; - 左边=你的电脑,右边=服务器,拖拽即上传;
- 右键文件还能改名、改权限(数字 755 之类)。
⚠️ 图形工具帮你"搬货",但改 nginx 配置仍需命令行或编辑器——两者搭配干活不累。
📝 学完验收:三题小测
💾 第七步(实战):给网站上保险——自动备份
上线只是开始。服务器哪天抽风了,有备份 = 满血复活。这台服务器今天刚装好的备份脚本,原样送给你:
# 1. 写一个备份脚本
cat > ~/backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR=/home/ubuntu/backups
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/web_$DATE.tar.gz /var/www /etc/nginx/sites-enabled 2>/dev/null
ls -t $BACKUP_DIR/web_*.tar.gz | tail -n +8 | xargs -r rm -f # 只留最近7份
echo "$(date +%F_%T) 备份完成" >> $BACKUP_DIR/backup.log
EOF
chmod +x ~/backup.sh
# 2. 交给 cron:每天凌晨 4 点自动跑
(crontab -l 2>/dev/null | grep -v backup.sh; echo '0 4 * * * /home/ubuntu/backup.sh') | crontab -
# 3. 手动跑一次试试
~/backup.sh && ls -lh ~/backups/
💾 本页展示的就是刚才那次真实备份:web_20260820_131804.tar.gz(13MB)。以后想回滚,解压即用。
🐟 关于本教程
这是一个"真事改编"的教程:
- 2026-08-16:s2648 用 Godot 做了《土豆兄弟·前5波复刻》小游戏;
- 2026-08-20:大肥鱼(DeepSeek)把游戏导出成网页版,SSH 登上这台服务器,挂载上线——就是页尾的
/potato/; - 顺手写了这份教程,教程自己也跑在这台服务器上,教的就是刚才发生的事;
- 服务器上还有一位老住户:一个 Ubuntu 主题个人博客(
/)。
所以:本教程的每一步,都能在这台机器上找到活证据。边看边对照,学得最快。🚀
🗂️ Linux 关键目录速查(新手不迷路)
| 路径 | 装的是什么 | 你什么时候会碰它 |
|---|---|---|
/home/ubuntu/ | 你的家目录 | 刚登录就在这;先传文件到这 |
/var/www/ | 网站文件货架 | 放正式上线的网站文件 |
/etc/nginx/ | nginx 配置总目录 | 改门卫的规矩 |
/etc/nginx/sites-enabled/ | 生效中的站点配置 | ⚠️ 别放 .bak 备份! |
/var/log/nginx/ | nginx 日志 | 网站出问题先看这里 |
/home/ubuntu/backups/ | 自动备份(本教程第7步装的) | 回滚找它 |
💬 答疑角(点开看答案)
🛠️ 本站开发日志(2026-08-20)
- 13:05 开工 → 13:15 初版上线(六步教程+实战案例+彩蛋终端);
- 之后一小时连发十几轮更新:序章比喻、安全组专题、图形化上传、昼夜主题、蹦跶土豆、三题小测、成功日记、命令速查卡、阅读进度条、答疑角、打印导出、自动备份章节……
- 全部改动:本地写好 → SFTP 上传 → nginx reload → 公网验证,一条龙。
💡 这正是教程想教你的节奏:小步快跑,随时上线。想围观源码:github.com/youweimiaomiao/xiaozhan-01(`网站教程/` 目录,改完 scp 上传即可自定义你自己的版本)
📕 新手术语表(10 个词,读完不懵)
| 词 | 大白话 |
|---|---|
| IP 地址 | 服务器的门牌号,如 1.2.3.4 |
| 域名 | 门牌号的花名,如 youweimiao.com |
| DNS | 查花名→门牌号的电话本 |
| 端口 | 房子上的不同窗口:22=SSH、80=网页、443=加密网页 |
| SSH | 远程遥控线,敲命令用 |
| SFTP/scp | 传文件的货运通道 |
| nginx | 网页门卫,按路径发文件 |
| sudo | "以管理员身份执行" |
| 安全组 | 云厂商的防火墙,管哪些端口对外开 |
| HTTPS/TLS | 加密通道,网址前的小锁头 |
🎓 恭喜,你出师了
从"网站是什么"到"自动备份装好",你已走完真实上线的全部路程。
剩下的只有一件事:动手。
🔄 日常更新网站:三步走(背下来)
上线不是终点,改版才是常态。以后你每改一次网站,就重复这三步:
# 1. 本地改好文件
# 2. 上传覆盖(只传改动的文件就行)
scp style.css ubuntu@youweimiao.com:/var/www/你的站点/
# 3. 刷新浏览器(静态文件不需要 reload nginx,除非改了 nginx 配置)
⏱️ 熟练之后,一次更新 30 秒搞定——这就是本教程想给你的肌肉记忆。
🎁 进阶:我们把这套流程做成了一键部署脚本(上传+到位+验证一条龙):
pwsh -File "C:\Deepseek\deepseek工作分区一号\连接git和\本地AI工具箱\一键部署.ps1" `
-本地 "C:\...\网站教程" -远端路径 "/jiaocheng"
# 输出:① 上传 → ② 移动到位 → ③ 公网验证 HTTP 200 ✓
🚑 常见翻车 & 抢救手册
| 症状 | 第一反应 |
|---|---|
| 浏览器转圈打不开 | 查端口通不通:nc -zv IP 80;云厂商安全组放行没? |
| nginx -t 报 duplicate server | sites-enabled 里放了 .bak 备份文件——备份必须移出该目录 |
| 改了配置没效果 | 忘了 sudo systemctl reload nginx |
| 游戏黑屏/报 Secure Context 错误 | Godot 4.3+ 网页版必须 HTTPS 才能跑(SharedArrayBuffer 依赖)。纯 HTTP 服务器无解——换 GitHub Pages(自带 HTTPS)或域名+证书。本页第5、6步。 |
| SSH 登录被拒 | 腾讯云 Ubuntu 默认用户是 ubuntu,不是 root |
🕹️ 彩蛋:假装你在服务器上
在下面终端里敲 help 看看(纯前端模拟,不会真碰服务器):