AWS Lightsail上Django应用非www域名400错误求助
解决AWS Lightsail上Django应用裸域访问400错误的方案
我之前在Lightsail部署多Django应用时也碰到过类似的问题,结合你的场景,给你几个针对性的排查和解决步骤:
1. 先确认域名解析(DNS)配置是否正确
第一个应用的裸域firstapp.com能正常访问,说明你的Lightsail实例IP是没问题的,但第二个应用的secondapp.com可能存在DNS记录缺失或错误:
- 登录你的域名服务商后台,检查
secondapp.com的A记录(或CNAME记录)是否指向了和www.secondapp.com相同的Lightsail实例IP; - 可以在本地终端用命令验证:
dig secondapp.com,对比返回的IP和dig www.secondapp.com的结果是否一致。如果不一致,赶紧修正DNS记录,等待生效(通常需要10-30分钟)。
2. 检查Web服务器(Nginx/Apache)的站点配置
绝大多数Django部署都会用Nginx做反向代理,这是最容易出问题的环节:
- 打开第二个应用的Nginx配置文件(通常在
/etc/nginx/sites-available/或/etc/nginx/conf.d/目录下),查看server_name字段是否同时包含裸域和www域名:server { listen 80; # 必须同时包含两个域名 server_name secondapp.com www.secondapp.com; # 以下是常规反向代理配置,确保保留Host头 location / { proxy_pass http://127.0.0.1:8000; # 对应你的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; } } - 如果是用Apache,需要在VirtualHost配置里添加
ServerAlias secondapp.com,确保同时覆盖两个域名; - 修改配置后,记得重启Web服务器:
sudo systemctl restart nginx(Nginx)或sudo systemctl restart apache2(Apache)。
3. 确保Django配置真正生效
虽然你已经设置了ALLOWED_HOSTS = ['*'],但可能存在配置未更新的情况:
- 重启你的应用服务器(比如Gunicorn或uWSGI),比如用systemd管理的Gunicorn:
sudo systemctl restart gunicorn; - 如果是通过环境变量设置
ALLOWED_HOSTS,检查第二个应用的环境变量是否正确配置了secondapp.com(比如在.env文件里),并且应用服务器能读取到这个变量。
4. 排查HTTPS/SSL相关配置(如果启用了HTTPS)
如果你的应用配置了SSL证书(比如Let's Encrypt),可能裸域的证书或重定向规则有问题:
- 确保你的SSL证书同时覆盖了
secondapp.com和www.secondapp.com(申请证书时要同时包含两个域名); - 如果配置了强制HTTPS重定向,要确保裸域的HTTP请求也能被正确重定向到HTTPS,比如在Nginx里添加:
server { listen 80; server_name secondapp.com www.secondapp.com; return 301 https://$host$request_uri; } - 同时,在Django的
settings.py里添加以下配置,确保能识别反向代理传递的HTTPS头:SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
5. 查看日志定位具体原因
如果以上步骤都没解决问题,直接看日志找线索:
- 查看Django的错误日志,通常在应用目录下的
logs文件夹,或者通过Web服务器的日志(比如Nginx的/var/log/nginx/error.log),看看访问secondapp.com时的具体错误信息; - 400错误虽然提示Host不允许,但有时候可能是请求头异常(比如Host头被篡改),日志里会明确显示Django收到的Host值,根据这个值再调整配置。
内容的提问来源于stack exchange,提问作者Elchin Kocharli
相关产品推荐
相关产品推荐

