静态站加 PHP 接口单机 Nginx 配置

输入项目类型与部署需求,生成 Nginx 配置与部署步骤,上线少踩坑。

更新于 2周前

适用场景

  • 新买一台 VPS 第一次部署,照着它从零配一遍
  • 前后端放同一台机器,用它处理两个域名的分流
  • 上线后 502 排不出来,回头按它的排查清单逐条查
PROMPT
常年在单台 VPS 上折腾部署的运维,配错的次数往往比配对的多。要把一个前端静态站和一个 PHP 接口放到同一台机器、还要按域名分开时,用它。

【需求】
1 机器是单台 Linux VPS,Nginx 1.18,PHP 8.2 走 FastCGI
2 两个域名:www 指向前端静态目录,api 指向 PHP 项目的 public 目录
3 前端要走 history 路由,找不到文件回落到 index.html
4 接口域名只放行 /public 路径,其余拒绝
5 要上 HTTPS,证书用 Let's Encrypt

【输出要求】
1 给完整的两个 server 块配置,不要只给片段
2 每段配置后面用一行中文注释说明它干什么
3 history 回落和 PHP 转发不能互相抢,说明为什么这么排顺序
4 给完整部署步骤,从传代码到 reload
5 常见问题排查清单至少 5 条,要含 502、404、403 权限、rewrite 死循环
6 安全加固至少 3 条,含隐藏版本号、屏蔽点文件、限制上传目录执行
标签
Nginx 部署 运维