Использование X-Sendfile для маскировки местоположения статического файла

Я предлагаю платные видео на моем сайте, которые доступны только для членов. На данный момент я выполняю полную аутентификацию и потоковую передачу видео через скрипт 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 возвращает 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 к пути в корне документа сайта, вместо того, чтобы распознавать, что это ресурс в другом месте, и просто "проксировать" файл.

Кто-нибудь получил какие-нибудь советы по тому, как заставить это работать?

2 ответа

Я полагаю, что вы пытаетесь прокси, что MP4. Я думаю, что проблема в конфигурации сервера nginx.

Взгляните на этот модуль:

http://wiki.nginx.org/HttpProxyModule

Использование nginx для пересылки статических файлов с помощью X-Accel-Redirect обычно делается для локально размещенных ресурсов.... Но я нашел это, я думаю, это то, что вы ищете: используйте Nginx для прокси-файлов из удаленного расположения с помощью X -Accel-Redirect

Другие вопросы по тегам