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

在Apache上部署Django遇504网关超时问题求助

解决Apache部署Django时的504 Gateway Timeout问题

从你给出的配置和环境信息来看,有几个关键配置错误和排查方向可以帮你解决这个超时问题:

1. 修正WSGIDaemonProcess的python-home路径

你的配置里python-home=/var/www/html/orounds_pro/venv/bin/python3是错误的——python-home需要指向虚拟环境的根目录,而不是Python可执行文件的路径。正确的写法应该是:

WSGIDaemonProcess orounds processes=2 threads=15 display-name=%{GROUP} python-home=/var/www/html/orounds_pro/venv

路径错误会导致mod_wsgi无法找到虚拟环境中的Django依赖,直接引发WSGI进程启动失败或初始化超时,这是504错误的常见诱因。

2. 检查目录权限

Apache的运行用户(默认是www-data)需要对项目目录拥有足够的访问权限:

  • 给项目根目录和虚拟环境目录添加对应权限:
    sudo chown -R www-data:www-data /var/www/html/orounds_pro
    sudo chmod -R 755 /var/www/html/orounds_pro
    
  • 虽然你已经给静态文件目录配置了Require all granted,但也要确保文件系统层面www-data能读取静态文件。

3. 验证WSGI脚本的正确性

确认/var/www/html/orounds_pro/orounds_pro/wsgi.py路径无误后,打开该文件检查:

  • 确保Django settings模块的路径设置正确:
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "orounds_pro.settings")
    
  • 如果你的settings.py中设置了DEBUG=False,一定要把orounds.localhost加入ALLOWED_HOSTS列表,否则Django会拒绝请求,也可能导致超时。

4. 查看Apache错误日志定位具体问题

504超时本质是后端进程无响应,查看Apache错误日志能获取最直接的故障线索:

sudo tail -f /var/log/apache2/error.log

日志里通常会显示模块导入失败、权限不足、虚拟环境加载异常等具体信息,是排查问题的核心依据。

5. 确认mod_wsgi已正确加载

检查mod_wsgi是否成功挂载到Apache:

apache2ctl -M | grep wsgi

如果输出包含wsgi_module (shared)说明加载正常;如果没有,需要重新启用模块并重启Apache:

sudo a2enmod wsgi
sudo systemctl restart apache2

6. 重启Apache并测试

修正所有配置后,一定要重启Apache让配置生效:

sudo systemctl restart apache2

之后访问http://orounds.localhost测试,如果仍有问题,再结合错误日志进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:34:44