如何通过Cloudflare将GoDaddy域名与网站IP正确关联并排查故障
问题排查与解决方案
1. 初始Nginx欢迎页问题处理
出现欢迎页说明Nginx未匹配到你的站点配置,默认走了default.conf:
- 检查Nginx主配置
/etc/nginx/nginx.conf,确认存在include /etc/nginx/conf.d/*.conf;(或对应配置目录的include语句),确保你的django.conf在该目录下。 - 执行
nginx -t验证配置语法,无问题则运行systemctl reload nginx重载服务。 - 调整
django.conf的server_name配置,示例:server { listen 80; server_name your-domain.com www.your-domain.com; # 替换为你的域名 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; } } - 禁用默认配置:将
/etc/nginx/sites-enabled/default(或/etc/nginx/conf.d/default.conf)重命名为default.conf.bak,再重载Nginx。
2. Cloudflare 502网关错误排查
502多是Nginx无法连接后端Django服务,或Cloudflare与服务器通信异常:
- 检查Django服务状态:执行
ps aux | grep gunicorn(若用gunicorn)或查看uwsgi日志,确认服务在监听配置的端口(如127.0.0.1:8000)。 - 检查服务器防火墙:确保允许Cloudflare IP段访问80/443端口,同时允许本地
127.0.0.1访问Django端口。 - 临时切换Cloudflare代理模式:在后台将域名代理改为「DNS only」(橙色云朵变灰色),测试域名访问。若此时正常,说明是SSL配置不匹配:
- 回到Cloudflare SSL/TLS设置,根据服务器证书情况选择「Flexible」或「Full」模式,避免「Strict」模式导致证书验证失败。
3. 400错误修复
400错误多因请求头不匹配,核心是Host头和Django配置问题:
- 确保
django.conf中存在proxy_set_header Host $host;,该配置会将客户端的域名Host头传递给Django。 - 修改Django的
settings.py,将域名加入ALLOWED_HOSTS:
修改后重启Django服务。ALLOWED_HOSTS = ['your-domain.com', 'www.your-domain.com', '服务器IP'] - 若使用Cloudflare代理,确认Nginx监听80/443端口,且Cloudflare SSL/TLS设置与服务器证书状态匹配。
4. 最终验证流程
- 再次执行
nginx -t确认配置无误,重载Nginx。 - 重启Django服务(gunicorn/uwsgi)。
- 在Cloudflare后台核对A/CNAME记录,确认代理模式设置正确。
- 清除本地浏览器缓存,用
curl -v your-domain.com查看请求详情,定位剩余问题。
内容的提问来源于stack exchange,提问作者Sulaiman Ibrahim
相关产品推荐
相关产品推荐

