我在我的网站上提供付费视频,仅供会员使用。目前,我正在通过PHP脚本进行整个身份验证和视频流,但是它倾向于使用大量资源,我想使用nginx来实际提供文件。为此,我发现你必须从你的PHP脚本发送X-Accel-Redirect
标题,然后将文件提供给nginx。
但是,有一个问题,要流式传输的视频的网址不是由与此网站相同的服务器提供的。它来自我的其他网站之一,它完全位于不同的VPS服务器(和域)上。无论如何,我尝试了这个简单的测试脚本:
<?php
header('X-Accel-Redirect: http://other-site.com/protected/videos/test.mp4');
但我不知道在我的nginx配置中使用什么来提供http://other-site.com/protected/videos/test.mp4
的文件,同时仍然隐藏用户的原始视频网址。
当我访问上面的测试脚本时,nginx返回404 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
解析为网站文档根目录中的路径,而不是认识到它是另一个位置的资源而只是“代理”该文件。
任何人都有任何关于让它工作的提示吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
使用nginx通过X-Accel-Redirect转发静态文件通常是针对本地托管的资源....但我确实发现了这一点,我认为这正是您所寻找的:Use Nginx to proxy files from remote location using X-Accel-Redirect