如何调试在 AWS EC2 中运行的 Django 应用程序
Posted
技术标签:
【中文标题】如何调试在 AWS EC2 中运行的 Django 应用程序【英文标题】:How to debug an Django application running in AWS EC2 【发布时间】:2021-11-28 20:40:13 【问题描述】:我在 AWS Elastic Beanstalk 上部署了一个 django 应用程序并运行了它。
一些端点运行良好,但有人说<h1>Server Error (500)</h1>
出现错误的端点在我的本地环境中运行良好,但在 AWS 上运行时出现上述错误。
所以我要调试为什么会出错......
请帮我!
注意:我有 ssh 访问权限。我检查了/var/log/
目录,但没有发现应用程序的日志记录错误。
【问题讨论】:
确保在 settings.py 中有DEBUG=True
,可以给你一些错误提示。
如果你是 SSH,你可以 curl localhost 来检查你的应用程序是否工作?
我相信DEBUG=True,当我尝试运行一个端点时,它说错误,其他的运行良好。
【参考方案1】:
在侧边栏中查找 Elastic Beanstalk 日志:
下载完整日志:
从 eb-engine.log 开始
在该文件的“尾部”(靠近底部)中查找 [ERROR]
行。根据“执行清理逻辑”这句话很明显
2021/07/18 23:56:16.414159 [ERROR] An error occurred during execution of ...
2021/07/18 23:56:16.414169 [INFO] Executing cleanup logic
2021/07/18 23:56:16.414270 [INFO] CommandService Response: ...
这将告诉您错误的原因,或者它会告诉您查看其他文件之一以获取更多信息。
不得不下载日志进行调试非常烦人。为了节省时间,只需知道下载后不需要解压缩下载;只需双击文件即可查看,无需解压。
【讨论】:
我已经知道了,日志显示部署、预请求、eb-engine等错误,不是应用程序运行错误 @MaSao93 你看过web.stdout.log
吗?如果您什么也看不到,一种解决方案是设置 custom logging 并配置 Django LOGGING
以登录到文件,例如。【参考方案2】:
您可能会遗漏很多东西。我要做的前两件事是:
-
按照 @sanNeck 的建议,尝试将 Debug=True 放入您的设置中(不建议在生产环境中使用),这会提示您出现错误。
检查您是否在 ElasticBeanStalk 上正确安装了所有软件包。尝试从控制台中提取错误日志并尝试查找任何丢失的包。
【讨论】:
以上是关于如何调试在 AWS EC2 中运行的 Django 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
AWS EC2 用户数据 - 如何调试失败的 EFS 挂载失败
在 AWS EC2 实例上使用 nginx 配置 django
如何将我的 Django 文件上传到 AWS ec2? [复制]
在 AWS Ubuntu EC2 上部署 Django 时缺少模块
如何将最新 (2020) Django 安装到 AWS EC2 Linux 2 实例并使用 Apache Hello World 服务