我在我的网站上提供仅供会员观看的付费视频。目前,我正在通过 PHP 脚本进行整个身份验证和视频流传输,但是它往往会使用大量资源,我想使用 nginx 来实际提供文件。为此,我发现您必须X-Accel-Redirect
从您的 PHP 脚本发送标头,然后将文件交给 nginx。
但是,有一个问题,要流式传输的视频的 URL 不是由与该站点相同的服务器提供服务。它来自我的其他网站之一,该网站完全位于不同的 VPS 服务器(和域)上。无论如何,我尝试了这个简单的测试脚本:
<?php
header('X-Accel-Redirect: http://other-site.com/protected/videos/test.mp4');
但我不知道在我的 nginx 配置中使用什么来提供文件http://other-site.com/protected/videos/test.mp4
,同时仍然对用户隐藏原始视频 URL。
当我访问上面的测试脚本时,nginx 返回 a404 Not Found
并且错误日志有这样的条目:
open() "/var/www/site.com/web/publichttp://other-site.com/protected/videos/test.mp4" failed (2: No such file or directory)
因此,nginx 显然试图解析http://other-site.com/protected/videos/test.mp4
到站点文档根目录中的路径,而不是识别它是另一个位置的资源并只是“代理”文件。
有人有任何关于让它工作的提示吗?