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

如何在AWS Elastic Beanstalk Node.js应用中安装Ghost CMS实现/blog访问

方案可行性结论

该方案完全可行,无需额外采购服务器,在现有AWS Elastic Beanstalk单实例环境内即可实现双服务同时运行、通过/blog子路径访问Ghost CMS的需求。

具体实现步骤
  • 第一步:完成Ghost子路径适配配置
    这是代理失效的核心原因,Ghost默认适配根路径访问,需修改Ghost安装目录下的config.production.json配置:
    将url字段值修改为你的完整博客路径"url": "https://mydomain.com/blog",无需额外修改其他静态资源路径配置,Ghost会自动根据该字段生成带/blog前缀的资源链接。
  • 第二步:配置同进程双服务启动
    安装npm包concurrently实现启动时同时拉起主应用和Ghost服务,在项目package.json的scripts字段中新增启动命令:
    "start": "concurrently \"node 你的主应用启动文件.js\" \"cd ./ghost安装目录 && ghost run\""
    注意将Ghost代码放在主应用目录内,随主应用代码一起打包部署到EB环境。
  • 第三步:配置EB环境Nginx反向代理规则
    按AWS Elastic Beanstalk的约定添加自定义Nginx配置,不要直接修改全局Nginx文件:
    在项目根目录新建.platform/nginx/conf.d/elasticbeanstalk/00_blog_proxy.conf文件,写入以下配置:
    location ^~ /blog {
        proxy_pass http://127.0.0.1:2368;
        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;
    }
    
    EB部署时会自动加载该配置,主应用其他路径仍正常走原有1337端口转发规则,互不干扰。
  • 第四步:验证端口权限
    确认EB实例安全组未禁止本地回环访问2368端口,默认配置下本地回环访问都是放行状态,如有异常可添加一条入站规则,允许源地址127.0.0.1访问2368端口即可。
可选替代方案(无需修改Nginx配置)

如果不想调整EB平台级Nginx配置,也可以直接在主Node应用中用代理中间件实现转发:
安装http-proxy-middleware包,在主应用路由中添加以下代码:

const { createProxyMiddleware } = require('http-proxy-middleware');
app.use('/blog', createProxyMiddleware({
  target: 'http://127.0.0.1:2368',
  changeOrigin: true
}))

该方案效果和Nginx代理一致,更适合小型应用快速配置。

常见问题排查
  • 代理后页面样式丢失、后台无法进入:100%是Ghost的url字段配置错误,确认该字段值为带/blog后缀的完整公网访问地址。
  • 服务启动失败:如果实例配置为t2.micro及以下规格,建议配置1G左右的swap分区,双Node服务运行总内存占用约500M,常规低配实例可正常运行。

内容的提问来源于stack exchange,提问作者caridina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:48:03