Hostinger VPS部署Django后端:域名访问异常排查求助
问题排查与解决步骤
1. 修正Django项目核心配置
ALLOWED_HOSTS 配置:
打开项目根目录的settings.py,将你的域名加入ALLOWED_HOSTS列表,示例:ALLOWED_HOSTS = ['你的域名', '服务器IP']测试阶段可临时设为
ALLOWED_HOSTS = ['*'](生产环境需改回具体域名)。静态/媒体文件配置:
确认settings.py中STATIC_URL、MEDIA_URL、STATIC_ROOT、MEDIA_ROOT路径正确。若使用Nginx做反向代理,需在Nginx配置文件中添加静态文件转发规则:location /static/ { alias /你的项目绝对路径/static/; } location /media/ { alias /你的项目绝对路径/media/; }
2. 调整反向代理(Nginx)配置
若用Nginx转发域名请求到Django服务(uWSGI/Gunicorn),需确保配置完整:
- 基础转发配置示例:
server { listen 80; server_name 你的域名; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; # 对应Django服务监听端口 } # 静态/媒体文件转发规则(同步骤1) location /static/ { alias /你的项目绝对路径/static/; } location /media/ { alias /你的项目绝对路径/media/; } } - 解决表单提交失败(CSRF验证问题):
在Nginx的location /块中添加头信息转发:
同时在Django的proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;settings.py中添加信任域名:
(启用HTTPS时需保留https开头的域名)CSRF_TRUSTED_ORIGINS = ['https://你的域名', 'http://你的域名']
3. 验证域名解析与防火墙
- 用
ping 你的域名确认域名已正确解析到服务器IP。 - 检查Hostinger VPS防火墙,确保80(HTTP)、443(HTTPS)端口已开放;若直接访问后端端口,需同步开放对应端口。
4. 重启服务生效
修改配置后,重启相关服务:
# 重启Nginx sudo systemctl restart nginx # 重启uWSGI(若使用) sudo systemctl restart uwsgi # 重启Gunicorn(若使用) sudo systemctl restart gunicorn
内容的提问来源于stack exchange,提问作者Jerold Raja
相关产品推荐
相关产品推荐

