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

AWS Elastic Beanstalk AL2 Python3.7 Flask应用Nginx配置异常超时求助

问题排查及解决步骤
  • 首先确认你的Elastic Beanstalk运行的平台版本:
    如果是Amazon Linux 2版本的Python平台,旧的.ebextensions目录下的Nginx配置规则已经不再生效,需要把配置文件放到.platform/nginx/conf.d/路径下,项目目录结构参考如下:
    你的项目根目录
    ├── application.py
    ├── .ebextensions/
    │   └── application.config
    └── .platform/
        └── nginx/
            └── conf.d/
                └── myconf.conf
    
  • 修正你的Nginx配置内容:
    你当前的配置写了完整的server块,会和EB默认生成的监听80端口的server块冲突,不需要套server层,只保留location规则即可,myconf.conf内容修改为:
    location / {
        proxy_pass          http://127.0.0.1:8000;
        proxy_http_version  1.1;
        proxy_set_header    Connection          $connection_upgrade;
        proxy_set_header    Upgrade             $http_upgrade;
        proxy_set_header    Host                $host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    }
    
  • 先排除应用本身故障:
    可以通过SSH登录到EB实例,执行命令curl http://127.0.0.1:8000,如果能拿到预期的响应,说明Flask应用运行正常,问题确实出在Nginx转发层;如果请求无响应,优先检查Flask应用代码逻辑。
  • 验证Nginx配置是否生效:
    登录EB实例后,首先查看/etc/nginx/conf.d/目录下是否存在你上传的myconf.conf文件,再执行sudo nginx -t测试配置是否有语法错误,若测试通过执行sudo systemctl reload nginx重载配置。同时可以查看Nginx错误日志排查具体报错,日志路径为/var/log/nginx/error.log。
  • 检查实例安全组规则:
    确认EB关联的EC2实例安全组已经开放80(HTTP)和443(HTTPS)端口的入站规则,源地址设置为你访问的IP或者0.0.0.0/0(公网访问场景)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:24:05