Django项目部署失败求助:无法通过浏览器访问应用
Django部署问题排查与修复方案
1. SECRET_KEY未正确加载
报错明确提示The SECRET_KEY setting must not be empty,尽管你已设置环境变量,但Gunicorn的systemd服务并未正确读取到它:
- 检查
/etc/systemd/system/apegd_ai.service中的Environment配置,确认密钥值填写正确,无拼写错误 - 或修改
settings.py,给SECRET_KEY设置默认值,避免环境变量加载失败:SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", "your_fallback_secret_key_here") - 修改systemd配置后,执行命令重新加载并重启服务:
sudo systemctl daemon-reload sudo systemctl restart apegd_ai.service
2. URL路由配置错误
项目根URL配置存在空格,导致根路径无法匹配:
原urls.py中的:
path(" ",include('apegd_ai_core.urls')),
修改为(去掉空格):
path("", include('apegd_ai_core.urls')),
修改后Django才能将根路径请求转发到apegd_ai_core应用的路由中。
3. 文件路径与用户权限不匹配
配置中存在多处用户和路径不一致的问题,会导致权限错误或文件找不到:
- Gunicorn服务的
User=john,但ExecStart指向/home/bobby/...的虚拟环境,WorkingDirectory是/home/john/...,需统一用户(比如都用john),确保john对虚拟环境和项目目录有读写权限 - Nginx配置中
static路径指向/home/jared/...,和Gunicorn的项目路径/home/john/...不一致,需修正为实际的静态文件目录(确保Nginx进程对该目录有读取权限)
4. 其他必要调整
- 将
settings.py中的DEBUG = True改为DEBUG = False(生产环境必须关闭调试模式) - 扩展
ALLOWED_HOSTS,确保包含服务器IP:ALLOWED_HOSTS = ['**.**.***.***', '127.0.0.1'] - 重启Nginx和Gunicorn服务,确保配置生效:
sudo systemctl restart nginx sudo systemctl restart apegd_ai.service
内容的提问来源于stack exchange,提问作者ZapRowsdower
相关产品推荐
相关产品推荐

