【问题标题】:Internal Server Error 500 when deploying Django Application to Elastic Beanstalk将 Django 应用程序部署到 Elastic Beanstalk 时出现内部服务器错误 500
【发布时间】:2019-11-27 16:02:02
【问题描述】:

我一丝不苟地按照官方 AWS 指南将 Django 应用程序部署到 Elastic Beanstalk (https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html) 用于学校项目。它在本地工作,但是当我尝试部署它时显示 500 错误消息。我对我的代码进行了许多调整,但它们似乎并不有效。 AWS 控制面板显示一条警告,内容为:环境运行状况已从 OK 转变为 Warning。 100% 的请求以 HTTP 5xx 失败。我目前在欧洲,这可能是时区问题吗?

我尝试将调试模式从 true 更改为 false,但我认为这不是问题所在。我真的不明白为什么它不起作用,我在终端的执行中从来没有遇到过错误,它总是正确地部署了所有东西。由于某种原因,它只是不显示网页。

MacBook-Air-di-Davide:ebdjango davidemerlin$ eb create django-env
Creating application version archive "app-190718_165248".
Uploading ebdjango/app-190718_165248.zip to S3. This may take a while.
Upload Complete.
Environment details for: django-env
  Application name: ebdjango
  Region: eu-central-1
  Deployed Version: app-190718_165248
  Environment ID: e-3mxbcch2rm
  Platform: arn:aws:elasticbeanstalk:eu-central-1::platform/Python 3.6 running on 64bit Amazon Linux/2.8.6
  Tier: WebServer-Standard-1.0
  CNAME: UNKNOWN
  Updated: 2019-07-18 14:52:51.893000+00:00
Printing Status:
2019-07-18 14:52:51    INFO    createEnvironment is starting.
2019-07-18 14:52:52    INFO    Using elasticbeanstalk-eu-central-1-725098113628 as Amazon S3 storage bucket for environment data.
2019-07-18 14:53:16    INFO    Created security group named: sg-0d5da9ecf4206ab11
2019-07-18 14:53:32    INFO    Created load balancer named: awseb-e-3-AWSEBLoa-GCK3W368WNAW
2019-07-18 14:53:32    INFO    Created security group named: awseb-e-3mxbcch2rm-stack-AWSEBSecurityGroup-10HEII5KA2YFV
2019-07-18 14:53:32    INFO    Created Auto Scaling launch configuration named: awseb-e-3mxbcch2rm-stack-AWSEBAutoScalingLaunchConfiguration-16YCNNVJS4QJG
 -- Events -- (safe to Ctrl+C)

eb status
Environment details for: django-env
  Application name: ebdjango
  Region: eu-central-1
  Deployed Version: None
  Environment ID: e-3mxbcch2rm
  Platform: arn:aws:elasticbeanstalk:eu-central-1::platform/Python 3.6 running on 64bit Amazon Linux/2.8.6
  Tier: WebServer-Standard-1.0
  CNAME: django-env.q7fdcfwnii.eu-central-1.elasticbeanstalk.com
  Updated: 2019-07-18 14:53:32.535000+00:00
  Status: Launching
  Health: Grey
Alert: An update to the EB CLI is available. Run "pip install --upgrade awsebcli" to get the latest version.
(base) MacBook-Air-di-Davide:ebdjango davidemerlin$ eb deploy
Creating application version archive "app-190718_165726".
Uploading ebdjango/app-190718_165726.zip to S3. This may take a while.
Upload Complete.
2019-07-18 14:57:28    INFO    Environment update is starting.      
2019-07-18 14:57:31    INFO    Deploying new version to instance(s).
2019-07-18 14:57:53    INFO    New application version was deployed to running EC2 instances.
2019-07-18 14:57:53    INFO    Environment update completed successfully.

Alert: An update to the EB CLI is available. Run "pip install --upgrade awsebcli" to get the latest version.
(base) MacBook-Air-di-Davide:ebdjango davidemerlin$ eb open'''

I expect to load the page at django-env.q7fdcfwnii.eu-central-1.elasticbeanstalk.com

【问题讨论】:

  • 日志 (eb logs) 和运行状况 (eb health) 是什么样的?你可以通过 ssh 进入你的实例吗?
  • 正如@danimal 指出的,检查eb logs。考虑到正在返回 HTTP 500,您应该会在输出中看到堆栈跟踪。

标签: python django bash amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

你解决了吗?在完全按照说明进行操作后,我挣扎了数周,但遇到了 502。

然后我发现了这个post 并推断它是一个错字或过时的指令(*/wsgi.py 应该是*.wsgi:application)。

为 AWS 文档创建了一个 pull request,并且他们已经更新了。

【讨论】:

  • "*/wsgi.py 应该是 *.wsgi:application" 是我建议的答案,我提供了文档的支持链接。
【解决方案2】:

我试图按照this documentation 将我的 Django Rest Api 部署到 Beanstalk。我遇到了同样的 Status Code 500 错误。

我通过以下两个更改设法解决了这个问题:

  1. AWS Beanstalk 的 python 3.6 环境似乎不适用于 最新的 Django 版本。所以我使用这个命令创建了一个新的 python 3.7 环境。

    eb init -p python-3.7 django-tutorial
    
    
  2. WSGI 路径更改为

    WSGIPath: YourDjangoProjectFolder.wsgi:application

所有其他内容与该文档中的描述相同。

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,直到我意识到我的 settings.py 文件中没有包含以下行:

    ALLOWED_HOSTS = ['eb-django-app-dev.elasticbeanstalk.com'] 
    

    用我自己的自定义应用程序链接替换括号内的链接,如本教程的第 5 步所述。

    保存文件并提交后,我能够摆脱 500 错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 2016-07-01
      • 2021-12-04
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      • 2019-12-01
      相关资源
      最近更新 更多