Cloudflare配置子域名指向AWS EC2跳转主域名 遗漏了什么配置?
你需要逐一排查以下遗漏配置项:
- Web服务虚拟主机配置问题:你的EC2上的Nginx/Apache/Caddy等Web服务之前是为主域名配置的,大概率没有单独为新子域名配置server块/虚拟主机规则,所有未匹配到指定主机名的请求都会默认走主域名的配置,触发重定向。需要新增子域名对应的站点配置,指定正确的根目录、域名匹配规则,取消默认跳转逻辑。
以Nginx为例,需要新增配置文件,配置类似如下的server块:
配置完成后重载Web服务生效。server { listen 80; server_name 你的子域名; root 子域名站点对应的文件目录; index index.html index.htm index.php; # 其他站点配置 } - Cloudflare规则冲突问题:检查Cloudflare后台的「页面规则」「重定向规则」「转换规则」,如果之前为了主域名配置过全局跳转、HTTP跳HTTPS等规则,规则匹配范围包含了子域名的话就会触发跳转,需要调整规则匹配条件,添加子域名为例外,或者单独为子域名配置更高优先级的规则。
- Cloudflare SSL/TLS模式适配问题:如果EC2上没有部署SSL证书,Cloudflare的SSL/TLS模式如果设置为「严格」会导致握手失败触发跳转,需要根据EC2的HTTPS配置情况调整为「灵活」或「完全」模式。
- 应用层硬编码配置问题:如果EC2上跑的是WordPress、Drupal这类CMS,或者自己写的应用里硬编码了主域名作为站点根URL,不管访问的入口域名是什么都会强制跳转到主域名,需要到应用的后台配置里把子域名添加为允许的域名,或者修改站点URL配置为当前子域名。
- 缓存遗留问题:先使用浏览器无痕模式、或者
curl命令直接测试子域名的响应头,排除本地浏览器缓存了之前的301永久重定向规则导致的误跳转,curl测试命令如下:
可以直接查看返回的状态码和Location字段,确认重定向是来自Cloudflare还是EC2服务器。curl -I 你的子域名地址
内容的提问来源于stack exchange,提问作者d199224
相关产品推荐
相关产品推荐

