我在我的网站上提供付费视频,这些视频只对会员开放。目前,我正在通过PHP脚本进行整个身份验证和视频流,但是它往往会使用大量资源,我希望使用nginx来实际提供文件。要做到这一点,我发现你必须从你的X-Accel-Redirect脚本发送nginx头文件,然后将文件传递给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返回一个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解析为站点文档根目录中的路径,而不是识别它是另一个位置的资源并只是“代理”该文件。
有没有人有什么建议可以让它工作?
发布于 2014-01-10 00:45:32
我相信你是在试图代理那个mp4。我猜问题出在nginx服务器的配置上。
看一下这个模块:
http://wiki.nginx.org/HttpProxyModule
发布于 2016-09-20 10:02:38
使用nginx通过X-Accel-Redirect转发静态文件通常是针对本地托管资源完成的。但我确实找到了这个,我想这就是你要找的:Use Nginx to proxy files from remote location using X-Accel-Redirect
https://stackoverflow.com/questions/20177420
复制相似问题