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

Gunicorn重启后未加载Django代码变更,延迟生效问题求助

Django视图/模板/迁移变更不生效排查方案
  • 确认Gunicorn进程彻底重启
    不要仅依赖systemctl restart gunicorn,先检查是否有旧进程残留:

    ps aux | grep gunicorn
    

    如果看到未终止的旧进程,直接强制杀死:

    pkill -f gunicorn
    

    再重启Gunicorn服务。同时检查systemd配置文件(通常在/etc/systemd/system/gunicorn.service),确保ExecStart指向的是正确的虚拟环境和项目入口文件,避免启动了旧版本代码。

  • 禁用Django模板缓存(DEBUG=False场景)
    生产环境下DEBUG=False会自动启用模板缓存,导致HTML变更不生效。临时修改settings.py关闭模板缓存:

    TEMPLATES[0]['OPTIONS']['loaders'] = [
        'django.template.loaders.filesystem.Loader',
        'django.template.loaders.app_directories.Loader',
    ]
    

    调试完成后建议改回缓存模式(使用cached.Loader)以保证性能。

  • 验证数据库迁移执行状态
    执行命令检查是否有未应用的迁移:

    python manage.py migrate --check
    

    若存在未应用项,重新执行python manage.py migrate并查看输出日志,确认迁移无报错。同时直接登录数据库,验证表结构或数据是否已更新。

  • 排查Nginx动态请求缓存
    检查Nginx配置文件(通常在/etc/nginx/sites-available/your-project.conf),查看是否针对动态请求配置了proxy_cache或fastcgi_cache。如果有缓存配置,临时注释后重启Nginx,或手动清理Nginx缓存目录:

    rm -rf /var/cache/nginx/*
    
  • 检查GCP层面的缓存机制
    如果实例搭配了Cloud CDN或HTTP(S)负载均衡,可能会缓存动态内容:

    • 登录GCP控制台,检查是否启用了Cloud CDN,若有则手动刷新缓存
    • 确认负载均衡器的缓存规则,是否对动态页面(如.html、视图接口)设置了缓存
  • 核对代码部署路径
    确认推送代码的目录与Gunicorn启动时指向的目录完全一致,避免代码推送到了错误路径。同时检查虚拟环境是否正确激活,项目依赖是否与本地开发环境同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 06:15:07