写给 s2648 的运维第一课

小服务器 · 大冒险

一台 4核4G 的小服务器,怎么一步步变成全世界都能打开的网站?
跟着这份图形化教程走,60 分钟包会。

🎯 目标站点 youweimiao.com 🐧 Ubuntu + Nginx 🧪 实战案例:土豆兄弟网页版
开始冒险 ↓

🧰 出发前:准备清单

☑️ 一台云服务器(4核4G 起步,本教程用腾讯云 Ubuntu)
☑️ 能上网的电脑(Windows 自带 SSH 客户端)
☑️ 要上线的网站文件(任何 HTML/CSS/JS 都行)
⬜ 域名(可选,没有也能用 IP 直连上线)

本页所有步骤都可以点标题展开/收起,点过的会自动打勾记住进度(存在你浏览器里)。

📖 序章:服务器到底是个啥

把网站想象成开一家小卖部:

🥔 本教程每一步都对应真实服务器(域名 youweimiao.com)上的真实操作——你随时可以拿手机打开页尾的实战链接对照。

🗺️ 先看懂整张地图

网站上线,本质就是一条流水线:

你的电脑写代码 / 放文件
SSH 遥控
SFTP 传文件
➡
云服务器24小时不关机的
小房子
nginx 当门卫
➡
全世界的访客手机/电脑
输网址就能看

💡 服务器不用装任何"引擎"——网页就是一堆文件(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/
🎮 去玩一把(真实线上版)

🌐 第五步·第六步:挂招牌 + 装防盗门

⑤ 域名怎么用

  1. 在域名商控制台加一条 A 记录:主机记录 @,记录值 你的服务器公网IP;再一条 www 同理;
  2. 等几分钟到几小时,用 ping youweimiao.com 看解析;
  3. nginx 配置里加 server_name youweimiao.com www.youweimiao.com;,reload;
  4. 完事——域名直接打开你的网站。

⑥ HTTPS 小锁头

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d youweimiao.com -d www.youweimiao.com
# 证书90天一续,certbot 自动帮你续,别管它

🔒 没域名的阶段,IP 直连照样公网可见;域名生效后再补锁头。

🧭 出师之后的下一步学什么

✅ 上线第一个静态网站(本教程)
🔜 给网站加 HTTPS + 绑域名(第5、6步)
🔜 学 Linux 基础命令 + systemd 服务
🔜 Docker 部署动态应用(比如自建 TTS 服务)
🔜 备份与监控(uptime-kuma / 定时备份脚本)
🎯 最终目标:自己的作品,全世界上线

🖥️ 小剧场:宝塔面板真的需要吗?

很多人以为"管服务器 = 宝塔"。不是的——宝塔只是给命令行套了一层网页皮肤,可有可无:

用宝塔

  • 点点鼠标,适合纯小白
  • 占内存、占端口
  • 出问题不知道背后发生了什么

不用宝塔(本教程路线)

  • 命令不多:ssh / scp / nginx 三样走天下
  • 轻量干净,服务器只跑你的网站
  • 每步都懂原理,出问题不慌

真实案例:这台服务器上"找不到宝塔"其实不是事故——没有它,博客和游戏照跑,教程也在跑。🐟

📚 学不动了?来这些地方充电

🎴 命令速查卡(贴墙版)

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)没放行。

正确姿势

  1. 腾讯云控制台 → 云服务器 → 安全组;
  2. 入站规则放行:22(SSH)、80(HTTP)、443(HTTPS);
  3. 来源建议 0.0.0.0/0(网站要让所有人访问);SSH 可只对自己的 IP 开放更安全。

📖 真实案例:本机 8888 端口在安全组里"是开着的",但服务器上根本没装面板——所以进不去。安全组只是第一道门,服务要真的在跑才行。

🖱️ 不想敲命令?图形化工具一样行

上传文件也可以纯鼠标操作:

  1. 下载 WinSCP 或 FileZilla(免费);
  2. 新建连接:主机 youweimiao.com,端口 22,用户 ubuntu,密码填你的;
  3. 左边=你的电脑,右边=服务器,拖拽即上传;
  4. 右键文件还能改名、改权限(数字 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)。以后想回滚,解压即用。

🐟 关于本教程

这是一个"真事改编"的教程:

所以:本教程的每一步,都能在这台机器上找到活证据。边看边对照,学得最快。🚀

🗂️ Linux 关键目录速查(新手不迷路)

路径装的是什么你什么时候会碰它
/home/ubuntu/你的家目录刚登录就在这;先传文件到这
/var/www/网站文件货架放正式上线的网站文件
/etc/nginx/nginx 配置总目录改门卫的规矩
/etc/nginx/sites-enabled/生效中的站点配置⚠️ 别放 .bak 备份!
/var/log/nginx/nginx 日志网站出问题先看这里
/home/ubuntu/backups/自动备份(本教程第7步装的)回滚找它

💬 答疑角(点开看答案)

服务器会不会突然断电丢数据?
云服务器有冗余电源和存储,比你家电还稳;但误删、误改才是真风险——所以第 7 步的自动备份是标配。
上传了文件但网站还是老样子?
三查:① 文件是否传进了 nginx 指向的目录(root/alias);② 是否 reload 了 nginx;③ 浏览器 Ctrl+F5 强刷。
一定要用域名吗?IP 直连丢人吗?
不丢人。IP 直连完全够"公网可见",域名是门面 + HTTPS 的前提。先上线,再挂牌。
我能在这台服务器上放多少个网站?
理论上无限——nginx 每个 server/location 一个"货架",只要磁盘够(df -h 看看)。

🛠️ 本站开发日志(2026-08-20)

💡 这正是教程想教你的节奏:小步快跑,随时上线。想围观源码: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 serversites-enabled 里放了 .bak 备份文件——备份必须移出该目录
改了配置没效果忘了 sudo systemctl reload nginx
游戏黑屏/报 Secure Context 错误Godot 4.3+ 网页版必须 HTTPS 才能跑(SharedArrayBuffer 依赖)。纯 HTTP 服务器无解——换 GitHub Pages(自带 HTTPS)或域名+证书。本页第5、6步。
SSH 登录被拒腾讯云 Ubuntu 默认用户是 ubuntu,不是 root

🕹️ 彩蛋:假装你在服务器上

在下面终端里敲 help 看看(纯前端模拟,不会真碰服务器):

ubuntu@youweimiao.com: ~
ubuntu@小服务器:~$
🥔