从 0 到上线 网站建设实训课
总览/ 课程地图/ S3 上线

M17首次手工上线

所属路径 Q / A / B / C 第 17 / 31 讲 S3 上线
先手动跑通,再谈自动化
学完能把本地文件安全送到服务器,并证明它生效了

01为什么重要

手工这一步的意义不是「能用就行」,是让你亲眼看见文件怎么落到服务器上。跳过它直接上 CI,出问题时你没有任何参照物。

02要讲清的 4 件事核心要点

  • rsync 或 tar over ssh;白名单部署
  • --no-same-owner 再 chown,别把本地 uid 带到线上
  • 不部署 .md 与 git 元数据
  • 三层核验:状态码 / 线上内容 / 服务器落盘哨兵

03照着做:4 步操作顺序

  1. 本地构建,确认产物目录干净
  2. 用 tar over ssh 上传,带 --no-same-owner
  3. chown 到 nginx 用户
  4. 三层核验:状态码、线上内容、服务器哨兵
tar czf - -C dist . | ssh root@服务器IP "tar xzf - --no-same-owner -C /var/www/site"
ssh root@服务器IP "chown -R www-data:www-data /var/www/site"
ssh root@服务器IP "cat /var/www/site/.deployed-version"

04产出物与验收做完怎么算过

产出物

第一个真实可访问的站点

验收判据

可验三层核验全过;随手访问一个 .md 文件必须 404

05练习15 分钟内可做完

故意传一个 .md 上去确认不可访问;再故意传错属主,观察 403。

06最容易踩的坑

部署是「覆盖式、从不删除」——仓库删掉的文件线上仍然在
后果:部署是覆盖式、从不删除——仓库里删掉的文件,线上还留着,而且仍然能被公网访问。

07自检表进度存在本机浏览器

0 / 6

08本讲术语全部 28 条

  • 哨兵文件:服务器上一个记录当前已部署版本的小文件。查线上到底跑的是哪一版,看它最准。
  • 三层核验:状态码 / 线上内容 / 服务器落盘哨兵。三层都过才算上线成功。
  • 白名单部署:只上传清单里列出的文件,不是整目录覆盖。清单通常要维护两处,容易不同步。
  • 属主:服务器上文件归哪个用户所有。网站文件必须归 nginx 运行用户,否则访问会 403。