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

如何通过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:
    ALLOWED_HOSTS = ['your-domain.com', 'www.your-domain.com', '服务器IP']
    
    修改后重启Django服务。
  • 若使用Cloudflare代理,确认Nginx监听80/443端口,且Cloudflare SSL/TLS设置与服务器证书状态匹配。

4. 最终验证流程

  1. 再次执行nginx -t确认配置无误,重载Nginx。
  2. 重启Django服务(gunicorn/uwsgi)。
  3. 在Cloudflare后台核对A/CNAME记录,确认代理模式设置正确。
  4. 清除本地浏览器缓存,用curl -v your-domain.com查看请求详情,定位剩余问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:21:12