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

DigitalOcean部署Django项目访问时报400错误提示HTTPS不支持

问题根因

两个核心原因共同导致该报错:

  1. 你实际运行的是Django自带的runserver开发服务器,而非生产级服务。不管DEBUG是否关闭,runserver本质都是面向开发调试的工具,不属于生产级服务,Django官方明确禁止在生产环境使用。该服务器默认仅支持HTTP协议,无法解析HTTPS请求,你看到的乱码报错就是HTTPS握手数据包被HTTP服务解析失败的提示。
  2. 你的settings.py中开启了SECURE_SSL_REDIRECT = True配置,该配置会将所有HTTP请求自动重定向到HTTPS协议。你首次访问http://服务器IP:8000时,Django直接跳转至https://服务器IP:8000,开发服务器无法处理HTTPS请求,就抛出了对应的报错。
解决方案

分两种场景处理:

场景1:仅临时测试功能,无需启用HTTPS

直接修改settings.py中的HTTPS相关配置为False即可:

SECURE_SSL_REDIRECT = False
SESSION_COOKIE_SECURE = False
CSRF_COOKIE_SECURE = False

修改后重启服务,直接通过HTTP协议访问即可正常打开页面。

场景2:正式部署生产环境

请按标准生产部署流程操作:

  • 安装Gunicorn/uWSGI这类生产级WSGI服务器启动你的Django项目,完全放弃使用runserver命令
  • 部署Nginx作为反向代理,将公网请求转发到后端Gunicorn服务
  • 申请SSL证书配置到Nginx,由Nginx处理HTTPS请求
  • 配置完成后再把settings.py中的三个HTTPS相关配置改回True即可正常使用HTTPS访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:36:02