You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2部署NextJs+Strapi遇问题:Strapi无法通过HTTPS反向代理

问题排查与解决方案:Strapi HTTPS反向代理失败

核心排查与修复步骤

1. 校验Strapi核心配置

确保config/server.js(生产环境对应config/env/production/server.js)配置正确:

module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  app: {
    keys: env.array('APP_KEYS'),
  },
  url: env('PUBLIC_URL', 'https://你的Strapi公网域名'), // 必填:设置为HTTPS公网域名
  proxy: true, // 开启代理模式,让Strapi识别反向代理请求头
});

修改后重启Strapi服务,确保配置生效。

2. 修正Nginx配置关键项

结合你提供的配置截图,重点补充/调整以下规则:

server {
  listen 443 ssl;
  server_name 你的Strapi域名;

  # SSL证书配置(保持现有即可)
  ssl_certificate /path/to/fullchain.pem;
  ssl_certificate_key /path/to/privkey.pem;

  location / {
    proxy_pass http://localhost:1337;
    # 必须传递的反向代理请求头
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme; # 告知Strapi请求来自HTTPS
    proxy_set_header X-Forwarded-Host $host;
  }

  # 单独处理Strapi后台的WebSocket请求
  location /admin {
    proxy_pass http://localhost:1337;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

执行nginx -t校验配置语法,无误后执行systemctl reload nginx生效。

3. 验证服务与网络

  • 在EC2本机执行curl http://localhost:1337,确认Strapi服务本身正常响应;
  • 执行curl -H "X-Forwarded-Proto: https" http://localhost:1337/admin,检查是否返回HTTPS适配的页面内容;
  • 确认EC2安全组仅放行80/443端口对外访问,1337端口仅允许本机访问。

4. 排查日志与进程

  • 查看Strapi日志(默认路径./logs),定位是否有请求头不匹配、权限报错等明确信息;
  • 若用PM2管理Strapi,确保环境变量中设置了NODE_ENV=production和PUBLIC_URL。

内容的提问来源于stack exchange,提问作者Luis Fernando Hernandez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:50:15