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

在AWS EC2上用Apache部署Django Rest API遇内部服务器错误求助

解决Django DRF API在AWS EC2+Apache部署的500内部错误问题

先别急,500错误虽然头疼,但咱们一步步排查就能搞定。首先,Apache的错误日志是你最好的帮手,先去扒日志内容,能直接定位问题:

# 实时查看Apache错误日志
sudo tail -f /var/log/apache2/error.log

接下来按下面的步骤逐一排查:

1. 先把Django项目的基础配置捋顺

  • ALLOWED_HOSTS必须配置:在settings.py里一定要加上EC2实例的公网DNS、公网IP,测试阶段也可以先填*(生产环境记得改回来):
    ALLOWED_HOSTS = ['你的EC2公网DNS', '你的EC2公网IP', 'localhost']
    
  • 静态文件要手动收集:Django在生产环境不会自动处理静态文件,必须执行收集命令:
    cd ~/API/djangorest
    python manage.py collectstatic
    
    执行时会提示是否覆盖,输入yes确认,确保所有静态文件都被放到/home/ubuntu/API/djangorest/static目录里。
  • DEBUG模式调整:如果是排查阶段,可以临时把DEBUG = True,这样能看到更详细的错误信息(排查完务必改回False,避免泄露敏感信息)。

2. 验证Apache配置的细节

你的配置文件大体没问题,但有几个关键点要确认:

  • 文件权限必须给够:Apache运行的用户(通常是www-data)需要有访问项目目录的权限,执行这两条命令搞定:
    sudo chown -R www-data:www-data /home/ubuntu/API/djangorest
    sudo chmod -R 755 /home/ubuntu/API/djangorest
    
  • 虚拟环境要指定(如果用了的话):如果本地是用虚拟环境开发的,EC2上也得让Apache用同一个虚拟环境的依赖。修改你的/etc/apache2/sites-enabled/djangorest.conf,加上这两行:
    WSGIDaemonProcess djangorest python-home=/home/ubuntu/API/djangorest/venv python-path=/home/ubuntu/API/djangorest
    WSGIProcessGroup djangorest
    
    替换掉原来的WSGIPythonPath就行,这样Apache会调用虚拟环境里的Python和依赖包。
  • 修改配置后必须重启Apache:
    sudo systemctl restart apache2
    

3. 检查Python依赖是否匹配

EC2的系统Python版本可能和你本地不一样,或者缺少依赖包:

  • 先在EC2上创建并激活虚拟环境,重新安装依赖:
    cd ~/API/djangorest
    python -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    
    确保所有Django、DRF等依赖都安装到位。

更适合新手的简化部署方案

如果觉得Apache配置太繁琐,推荐两个更省心的方案:

方案1:Docker容器部署

把你的Django项目打包成Docker镜像,在EC2上直接运行容器,不需要折腾Apache。只需要在项目根目录写个Dockerfile和docker-compose.yml,构建镜像后启动容器就行,生产环境搭配gunicorn+nginx也比手动配置Apache简单。

方案2:AWS Elastic Beanstalk

这是AWS专门做Web应用托管的服务,几乎零服务器配置:

  1. 安装EB CLI工具
  2. 在项目根目录执行eb init初始化应用
  3. 执行eb create创建部署环境,EB会自动帮你搞定服务器、负载均衡、数据库等所有配置,直接把你的API部署上线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:54:28