ZYH 开发教程
学习中心/服务器与部署
服务器与部署

部署、安全与运维指南

Nginx、HTTPS、Docker、上线安全、监控、发布、回滚和备份。

1. 推荐部署结构#

text
公网 80/443
    │
    ▼
Nginx ───── 静态文件(如有)
    │ 反向代理
    ▼
应用容器 :3000 ───── PostgreSQL :5432
                       (不直接暴露公网)

2. Nginx 与 HTTPS#

配置域名、反向代理、请求头、访问日志与错误日志。 修改后先测试配置,再平滑重载。 用受信任证书启用 HTTPS,并配置自动续期与到期检查。 理解代理超时、上传大小限制、静态缓存与压缩。

3. Docker#

镜像、容器、端口映射、卷、网络、环境变量的区别。 Dockerfile 用于构建镜像;Compose 文件描述多个服务如何运行。 数据库数据放持久卷;删除容器前确认数据和备份。 不把密钥写入镜像或提交到仓库;不要以为容器等于安全边界。 健康检查、多阶段构建、非 root 用户、镜像版本固定。

4. 上线前安全底线#

  • 操作系统和依赖更新到受支持版本;
  • 使用普通部署用户,SSH 优先密钥认证;
  • 防火墙只开放必要端口;数据库不直接对公网;
  • 全站 HTTPS;Cookie 和代理信任设置正确;
  • 密钥来自环境或专用密钥管理,不在 Git 中;
  • 密码专用哈希、参数化 SQL、所有输入校验;
  • 服务端对每个资源执行授权;
  • 登录和高成本接口有限流;
  • 错误响应不暴露内部信息;日志经过脱敏;
  • 定期依赖审计,移除不用的包;
  • 备份已加密/限制访问,并实际验证过恢复。

5. 可观测与维护#

最少关注四类信号:服务是否可用、错误率、响应时间、资源使用。日志要能串联一次请求;健康检查不应只返回固定的“OK”,还需区分“进程活着”和“关键依赖可用”。

发布流程#

  1. 测试通过并记录版本;
  2. 备份数据库,确认恢复办法;
  3. 应用数据库迁移;
  4. 发布应用并检查健康状态;
  5. 运行冒烟测试:登录、读取、写入;
  6. 观察日志和指标;
  7. 失败时按预先写好的方案回滚。

6. 备份原则#

采用 3-2-1 思路:至少 3 份数据、2 种介质、1 份异地。备份成功的日志不等于可恢复;每月至少做一次恢复演练,记录恢复用时和遗漏。对个人学习项目,也至少保存数据库导出、上传文件和部署配置。

最终验收#

  • 新服务器能按文档重建环境。
  • 域名通过 HTTPS 访问,HTTP 自动跳转。
  • 应用与数据库重启后能自动恢复服务。
  • 数据库没有直接暴露公网。
  • 能从备份恢复到新数据库并核对关键数据。
  • 能从日志定位一次 500 和一次 502 的原因。
  • 有清晰的更新、发布、回滚步骤。
可搜索标题、说明和正文Esc 关闭
从一个简单词开始试试“HTML”“数据库”“登录”或“部署”
在线练习修改代码并查看结果
运行结果