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

AWS上的Django应用登录时出现500服务器错误,求排查方法

解决Django部署后500错误及调试问题的方法

一、查看详细错误日志

1. 配置Django内置日志

在settings.py中添加日志配置,将错误信息写入文件,方便排查:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'ERROR',
            'class': 'logging.FileHandler',
            'filename': '/path/to/your/django/error.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'ERROR',
            'propagate': True,
        },
    },
}

修改filename为项目可写入的路径,保存后重启服务,再次触发登录操作,查看日志文件即可获取详细错误栈。

2. 查看Nginx日志

直接查看Nginx的错误日志和访问日志,通常路径为:

  • 错误日志:/var/log/nginx/error.log
  • 访问日志:/var/log/nginx/access.log
    执行命令查看实时日志:
tail -f /var/log/nginx/error.log

日志中会记录请求的状态码、请求路径以及可能的后端错误提示。

二、临时调试模式(仅用于排查,调试后立即恢复)

1. 临时开启DEBUG获取错误页面

将settings.py中的DEBUG = False改为DEBUG = True,同时确保ALLOWED_HOSTS包含你的服务器IP或本地测试IP(比如ALLOWED_HOSTS = ['your-server-dns', '127.0.0.1']),重启服务后再次访问登录页,就能看到详细的Django错误页面,明确报错原因。

2. 解决本地DEBUG=False时无法访问的问题

当DEBUG=False时,Django不会自动处理静态文件,且runserver默认的访问限制更严格。可以:

  • 运行python manage.py runserver 0.0.0.0:8000绑定所有网卡,同时确保ALLOWED_HOSTS包含你的本地IP或127.0.0.1
  • 临时开启DEBUG=True来绕过静态文件和访问限制问题,优先排查核心错误

三、排查环境变量与数据库问题

1. 确认环境变量是否被Django进程读取

终端设置的环境变量可能不会被Django的运行进程(如uWSGI/Gunicorn或systemd服务)继承。可以在settings.py中添加临时代码验证:

import os
print("DB_USER:", os.environ.get("DB_USER"))
print("DB_PASSWORD:", os.environ.get("DB_PASSWORD"))

重启服务后查看进程日志,确认变量是否正确加载。如果是用systemd管理服务,需要在service文件中添加Environment配置,或者将环境变量写入/etc/environment并重启服务器。

2. 检查Azure SQL数据库的访问权限

确认Azure SQL数据库的防火墙规则是否允许AWS服务器的公网IP访问,若IP未被加入白名单,会导致数据库连接失败,进而触发500错误。可以登录Azure控制台,在SQL数据库的“防火墙和虚拟网络”设置中添加AWS服务器的IP地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:35:26