Welcome! Log In Create A New Profile

Advanced

Re: Вопрос по лимитированию скорости

May 16, 2010 07:26AM
2010/5/16 Артур Хуснутдинов <forpdfsending@gmail.com>:
> Спасибо, прекрасно!
> Но теперь я в ступоре:
> Получается, что:
> /lim/имя файла - скорость режется
> /nelim/имя файла - скорость не режется
>
> Вопрос - как мне сделать динамические ссылки? Ведь юзверь, один раз увидев,
> что если качать не с адреса /lim/имя файла, а с /nelim/имя файла, то каждый
> раз будет просто руками исправлять адресную строку на /nelim/имя файла и
> качать с /nelim/имя файла.
Как я понял, у Вас в /lim и /nelim хранятся разные файлы из c:/1/lim и
c:/1/nelim. Если хочется по обоим адресам отдавать файлы из c:/, то
надо написать вот так:
location /lim/
{
limit_rate ...;
alias c:/1/;
}
location /nelim/
{
alias c:/1/;
}

> Как динамику-то сделать? В своё время я писал задачку, заточенную под эту
> задачу - при запросе файла с сайта юзверю передавалась ссылка
> /userid/filehash, а в БД MySQL заносилась запись с параметрами userid,
> filehash, path to file (определяется средствами PHP на основе filehash) и
> downloadspeed. Программа при запросе брала userid и filehash с GET URL и
> смотрела по БД, есть ли запись в ней с таким userid и filehash ,если есть,
> то отдавала файл на скорости, взятой из записи в БД.
> Так вот, как-нибудь возможно ли на nginx построить такой аналог?
То, что Вы хотите сделать можно сделать, используя проксирование на
http или fastcgi-бекенд.
У Вас должен быть location для файлов:
location /files/
{
alias c:/1/;
internal;
}
Директива internal не позволит пользователям получить доступ к файлам напрямую.
И location для бекенда:
location /get_file/
{
proxy_pass/fastcgi_pass ...;
}
На бекенде должен висеть простенький скрипт - при принятии запроса
вида /get_file/?user=userid&file=filehash лезть в базу и:
1) Отдавать заголовок:
Content-Disposition: attachment; filename=имя_файла
2) Отдавать заголовок:
X-Accel-Redirect: /files/путь_до_файл_относительно_c:/1/
3) Если нужно ограничить скорость, отдавать заголовок:
X-Accel-Limit-Rate: ограничение_скорости_в_байтах_в_секунду.

А вообще - использование nginx/windows для серьезных целей, кроме
тестирования при разработке, настоятельно не рекомендуется.

--
Boris Dolgov.
_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

Вопрос по лимитированию скорости

Артур Хуснутдинов May 16, 2010 06:46AM

Re: Вопрос по лимитированию скорости

Boris Dolgov May 16, 2010 06:52AM

Re: Вопрос по лимитированию скорости

Артур Хуснутдинов May 16, 2010 07:16AM

Re: Вопрос по лимитированию скорости

Boris Dolgov May 16, 2010 07:26AM

Re: Вопрос по лимитированию скорости

Anonymous User May 22, 2010 09:52AM

Re: Вопрос по лимитированию скорости

Anonymous User June 19, 2010 08:42AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 203
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready