我有一个嵌入HTML5视频的php页面,说video.mp4。在cloudflare上,我为mydomain.com/ .php *设置了一个pagerule设置,并将其设置为缓存所有内容。 cloudflare会缓存嵌入的视频吗?Cloudflare是否缓存PHP页面上嵌入的HTML5视频?
谢谢。
编辑:当缓存视频显然cloudflare f *** s。如果用户观看一半视频,而且只有缓存,那么每个访问您网站的用户将收到一半的视频。
我有一个嵌入HTML5视频的php页面,说video.mp4。在cloudflare上,我为mydomain.com/ .php *设置了一个pagerule设置,并将其设置为缓存所有内容。 cloudflare会缓存嵌入的视频吗?Cloudflare是否缓存PHP页面上嵌入的HTML5视频?
谢谢。
编辑:当缓存视频显然cloudflare f *** s。如果用户观看一半视频,而且只有缓存,那么每个访问您网站的用户将收到一半的视频。
但是你想在哪里缓存?在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"
为什么你没有PageRule设置为mydomain.com/*缓存的一切吗?
“将cloudflare缓存嵌入的视频?”
但是,是的,PageRule应该缓存一切。
如果我想减少服务器上的负载并使cloudflare处理它,前者可能很重要。 – Awn
您可以将其缓存在服务器上,也可以是Cloudflare。我不知道你在cloudflare上有什么功能,比如运行PHP脚本。如果您可以在cloudeflare上运行PHP并拥有足够的内存来存储它,则有一种方法可确保视频来自服务器内存。我会更新我的anwser。 – Misunderstood
等待,从我的服务器内存或cloudflare的? – Awn