Cloudflare - CPanel - 跨主机名并行化下载

时间:2017-04-13 05:13:37

标签: wordpress cpanel cloudflare cname

我有一个使用Cloudflare的wordpress网站。基本上,我创建了一个Cloudflare帐户并设置了所有内容,包括更改名称服务器,以便域首先通过Cloudflare。

我们的域名是 domain.com

现在我有一个名为 temp.domain.com 的子域,我需要在主机名之间并行化下载。

所有必要的wordpress代码(如下所示)已经在 functions.php 中使用。

function parallelize_hostnames($url, $id) {
     $hostname = par_get_hostname($url);
     $url =  str_replace(parse_url(get_bloginfo('url'), PHP_URL_HOST), $hostname, $url);
     return $url;
}

function par_get_hostname($name) {
    $subdomains = array('temp1.domain.com','temp2.domain.com', 'temp3.domain.com);
    $host = abs(crc32(basename($name)) % count($subdomains));
    $hostname = $subdomains[$host];
    return $hostname;
}

add_filter('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);

因此,在完成教程之后,我在Cloudflare中设置了3个 A 记录,名为 temp1.domain.com temp2.​​domain.com temp3.domain.com 指向我服务器的IP地址。

然后在我的CPanel中,我设置3个CNAME记录,其中3个名称都指向 temp.domain.com

等了一天多,现在当我访问temp1.domain.com,temp2.​​domain.com或temp3.domain.com时,我总是得到一个hostgator 404页面。

我做错了什么?这个设置有意义吗?

wordpress代码正常工作,因为我可以在浏览器控制台中验证这一点。但是,通过 temp1 temp2 temp3 的所有媒体请求都会发出NOT FOUND错误。

1 个答案:

答案 0 :(得分:0)

我通过以下方式解决了这个问题:

  1. 从CPanel
  2. 中删除Cloudflare和cname记录中的所有A记录
  3. 在cpanel中创建3个子域(temp1,temp2,temp3),指向同一目录(temp.domain.com)
  4. 重新创建Cloudflare中的相关A记录
  5. 然后一切都像魅力一样!我还被告知,CPanel在某些领域与Cloudflare并不完全兼容。