2015-05-02 62 views
0

我有一个嵌入HTML5视频的php页面,说video.mp4。在cloudflare上,我为mydomain.com/ .php *设置了一个pagerule设置,并将其设置为缓存所有内容。 cloudflare会缓存嵌入的视频吗?Cloudflare是否缓存PHP页面上嵌入的HTML5视频?

谢谢。

编辑:当缓存视频显然cloudflare f *** s。如果用户观看一半视频,而且只有缓存,那么每个访问您网站的用户将收到一半的视频。

回答

1

但是你想在哪里缓存?在cloudflare服务器上的内存或用户的浏览器中。我认为后者,因为前者不应该的问题

你尝试过:

preload="auto" 

检查HTTP响应头,看它是否具有

Cache-Control: max-age=xxxxx 

其中XXXXX =秒数浏览器应该缓存。

'Expires'也是浏览器不再保存在缓存中的日期。

要查看标题,请右键单击,选择检查元素,进入“网络标签”刷新页面,从资源列表中选择视频,查看响应标题。

要将视频存储在内存中,PHP/tmp目录是一个内存目录。

要验证tmp目录使用:

echo sys_get_temp_dir(); 

为了获得视频到临时目录

$data = file_get_contents('http://example.com/video/test.mp4'); 

$fp = fopen('/tmp/test.mp4','w'); 
fwrite($fp,$data); 
fclose($fp); 

您可能需要为内容类型的处理程序:视频/ MP4 。
但视频控制的类型应该这样做。我记得我必须设置处理程序,所以HTTP响应头具有正确的内容类型。

<source src="/tmp/test.mp4" type="video/mp4";/> 

你可以制作一个PHP脚本来为mp4提供正确的头文件。

header('Content-Type: video/mp4'); 
echo file_get_contents('/tmp/test.mp4'); 

然后在视频控制:

src="video.php" 
+0

如果我想减少服务器上的负载并使cloudflare处理它,前者可能很重要。 – Awn

+0

您可以将其缓存在服务器上,也可以是Cloudflare。我不知道你在cloudflare上有什么功能,比如运行PHP脚本。如果您可以在cloudeflare上运行PHP并拥有足够的内存来存储它,则有一种方法可确保视频来自服务器内存。我会更新我的anwser。 – Misunderstood

+0

等待,从我的服务器内存或cloudflare的? – Awn

0

为什么你没有PageRule设置为mydomain.com/*缓存的一切吗?

“将cloudflare缓存嵌入的视频?”

但是,是的,PageRule应该缓存一切。