一句话:你的展示页其实是个 HTML 文件,躺在一台云电脑(服务器)的某个文件夹里,访客输入网址后,由 nginx 把它读出来发回浏览器。
服务器 124.222.108.196(腾讯云 OpenCloudOS)上跑着三样东西:主站 memberhandbook.cn(React SPA)、德莉玛门店订购单系统 v2.5.0(Express + better-sqlite3 + pm2)、LumenX AI 平台(3 个 pm2 进程)。本篇讲的就是这三条业务线共同的「家」怎么搭起来的——nginx 怎么递文件、SSL 怎么锁、静态页和 Node 服务怎么共处一个根目录。
延伸:想搞清「一个请求到底怎么走到这些文件上」→ 基础 14 · 一次请求的旅程
把你那台服务器想象成"24 小时不关机的营业厅",几个角色各管一摊:
| 角色 | 大白话 | 你的实际配置 |
|---|---|---|
| 服务器 | 一台云上的电脑,永远开机、有公网 IP | 腾讯云,IP 124.222.108.196 |
| 宝塔面板 | 图形化"管家",点点鼠标就能建站/管文件/配证书 | 装在服务器上,ssh 用户 root |
| nginx | 门卫:访客敲门(请求),它决定把哪个文件递出去 | 处理 memberhandbook.cn 的访问 |
| 域名 | 好记的"门牌号",代替难记的 IP | memberhandbook.cn(www 会 301 跳到非 www) |
| DNS | 电话簿:把域名翻译成 IP | 在域名服务商后台把域名指向服务器 IP |
| SSL 证书 | 给门上加锁,网址从 http 变 https(带小绿锁) | 宝塔一键申请 Let's Encrypt |
网站根目录在服务器上的位置,以及 FDE 页放在哪:
# 网站根目录(所有网页文件的老家)
/www/wwwroot/memberhandbook.cn/
# 你的 FDE 展示页就在这个子目录
/www/wwwroot/memberhandbook.cn/fde/
├── index.html ← 展示页本体(单文件 HTML)
├── BingSiteAuth.xml ← 必应验证文件(模块三会讲)
└── assets/
└── moen-kitchen-ad.mp4 ← 摩恩广告视频
# 全站 SEO 相关文件也在根目录
/www/wwwroot/memberhandbook.cn/sitemap.xml
/www/wwwroot/memberhandbook.cn/robots.txt
nginx 收到 https://memberhandbook.cn/fde/ 时,大致逻辑是:先看有没有 fde/index.html 这个文件,有就直接返回。典型配置长这样(你的服务器就是这套逻辑):
location / {
root /www/wwwroot/memberhandbook.cn;
# 优先找文件,找不到再退给单页应用
try_files $uri $uri/ /index.html;
}
本地写好 index.html(可以像 FDE 页一样单文件完事)。
用 scp / 宝塔文件管理器 / FTP 传到 /www/wwwroot/memberhandbook.cn/fde/。
文件名为 index.html 时,访问 /fde/ 会自动读它。
宝塔里建站点,把域名 memberhandbook.cn 绑上,自动开 80/443。
宝塔"SSL"一键申请证书,强制 https。没锁的站搜索引擎不待见。
| 坑 | 说明 / 对策 |
|---|---|
| 改坏主站 | 子目录独立放,动 FDE 不影响主站;动主站前先备份 |
| 密钥外泄 | API Key、数据库密码绝不写进网页或知识库;网页只放公开内容 |
| 没备份就改 | 改服务器文件前先 cp 文件 文件.bak.日期 |
| http 没跳 https | 宝塔勾"强制 HTTPS",否则出现"不完全"提示 |