Как правильно сделать раздачу платных и бесплатных аудио-уроков на вирт. хостинге (чтобы не завалить его)?

Добрый день. Нужен совет. Будет небольшой сайт, посещаемость маленькая: вопрос довольно специфичный. Есть потребность кроме текстовых материалов раздавать и аудио (речь, файлы небольшие -- ну, мегабайты, в кр. случае десятки мегабайт). Аудио будет раздаваться в основном бесплатно и свободно. Но хотелось бы считать, сколько раз что скачали, чтобы оценивать предпочтения пользователей.
Есть также намерение со временем начать брать небольшую денежку за новые аудио-уроки, по истечении некоторого времени выкладывая их в свободный доступ.
Сайт будет на обычном виртуальном хостинге. Другой нагрузки кроме раздачи таких файлов там практически не будет, поэтому на VDS переходить не хотелось бы. Но, соответственно, нельзя ничего дополнительного поставить, например, mod_xsendfile для Апача, чтобы он сам раздавал файлы.
Как отдавать файл через PHP я представляю. Но опытные люди на Хабре говорят, что достаточно неск. клиентов с медленным каналом, чтобы сайт перестал отвечать. Поэтому надо файлы куда-то выносить.
Как вообще правильно делают такие вещи? Пока у меня есть такая идея. Бесплатные файлы выкладывать в облако или какой-то файловый хостинг. Считать, сколько скачивают, правда, я смогу только относительно, раз кто-то сможет просто опубликовать прямую ссылку на файл. Ну ладно, получу оценку снизу -- сколько раз у меня на кнопочку "скачать" или "воспроизвести" нажали. Но платный доступ я, наверно, тогда не смогу организовать? По кр. мере, что-то я не знаю как.
Тогда платный доступ делать только через свой сайт, напрямую отдавая файл через readfile(). Ну и посмотреть, что присходит с сайтом при этом, не падает ли.
Но, может, есть какие-то более правильные способы?
  • Вопрос задан
  • 2976 просмотров
Решения вопроса 1
Mandor
@Mandor
* Для массовой раздачи тяжелого контента нужно использовать lightweight сервера типа nginx. Идея в том, что они не будут съедать много памяти когда параллельных клиентов будет очень много.
* Если nginx (или подобное) использовать нельзя, пусть этим занимается апач, но, совершенно точно нельзя это делать через php.
* Пусть php занимается аутентификацией и прочим менеджментом и в результате просто создает симлинк на нужный файл, который дальше скачивается напрямую с http-сервера (в т.ч. с использованием X-Accel-Redirect, если у вас вдруг появится такая возможность).
* Хранить файлы на внешнем ресурсе - идея хорошая. Но не понятно как вы будете считать статистику и получать деньги. Можно, конечно, сделать там, например, автоматическую генерацию сложных ссылок, а вы на своем сайте их будете генерировать по тому же алгоритму и отдавать кому надо, с учетом статистики, но тогда не понятно почему вам сразу не разместиться на том удаленном внешнем хранилище.
* Платный доступ через readfile - идея плохая (см. выше).
* Если все таки решите отдавать контент через php, обязательно реализуйте докачивание (если не сможете - лучше и не беритесь), инфу можно почитать например здесь http://habrahabr.ru/post/138504/.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы