ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: X-Accel-Redirect и проксирование


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: X-Accel-Redirect и проксирование
  • From: "Анатолий Шарифулин" <sharifulin@xxxxxxxxxx>
  • Date: Wed, 17 Dec 2008 12:03:14 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:in-reply-to:mime-version:content-type:references :x-google-sender-auth; bh=aZqJqJ7fHWs5+aenp6sogeVAlI7lwKHQ5+8p4BIuz8I=; b=PQ0IhxCSHPywVY3DHlpMTR3B2HfjPfGGxQJquMRcsm1UPpfdmzBFriD2tZQh+Frrzv v4pDzdFbp/A88jXl28uXljXXNhsVVHZnjkeWE7XJpd+zUDncZlWZFp9aNFAxt077PRTa buTttiFZu9fD729umewsuRP/5BzALwlpkHYOs=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:in-reply-to:mime-version :content-type:references:x-google-sender-auth; b=iZjWW3Yvw0kJsp/dwYPen4/LaOWy78XKoTuQ/GfruoKdHRLlLiwmnmF7IiwnxvrUe3 /d3KEvnZMRVMoXIDeHO9diwz7D/TOvCiin/DyLDadYCj24f+HVtslNElUrlBv6+8COCt FiJ5Zpo7T0Ti34/w2jA58PHH0Dn6LXzSHU+Wg=
  • In-reply-to: <91318900812160502j4b4b6a3cn20a4940585fc9737@xxxxxxxxxxxxxx>
  • References: <91318900812160502j4b4b6a3cn20a4940585fc9737@xxxxxxxxxxxxxx>

Вопрос снят, это я сам text/plain и content-length 0 ставил, поэтому nginx ничего не менял :)

16 декабря 2008 г. 16:02 пользователь Анатолий Шарифулин <sharifulin@xxxxxxxxxx> написал:
Привет!

Есть контент вида image.jpg, video.mp4, разложенный по папочкам с ID:

ID/
   image.jpg
   video.mp4
   ...
ID2/
   image.jpg
   video.mp4
   ...
...
  
Контент раздает nginx, нужно при скачке таких файлов отдавать "нормальные" названия.

Сделал так:

    location / {
        if ($args ~* test) {
            proxy_pass http://domain:9999;
            break;
        }
       
        expires max;
        root /path/data;
    }

На порту 9999 (на другом сервере) висит демона, который для каждой ID находит "нормальные" названия и отвечает на каждый запрос так:

200 OK
Server: Title Server/1.0
Content-Type:
Content-Disposition: attachment; filename="normalnoe_nazvanie.mp4"
X-Accel-Redirect: /data/1133/video.mp4

Далее запрос обрабатывает nginx:

    location /data/ {
        internal;
        expires max;
        root /path;
    }

В результате пользователь получает следующий ответ:

200 OK
Server: nginx/0.6.16
Date: Tue, 16 Dec 2008 12:44:24 GMT
Content-Type: text/plain; charset=utf-8
Last-Modified; Fri, 12 Dec 2008 10:02:45 GMT
Transfer-Encoding: chunked
Content-Disposition: attachment; filename="normalnoe_nazvanie.mp4"
Content-Encoding: gzip
Connection: Close

Т.е. ставится дефолтный Content-Type, а должен от отдающего файла, и нет Content-Length.
Как разрешить эту проблему?

Сначала была идея написать на nginx-perl, но у меня демон общается с БД не блокируясь. Поэтому решил написать свой демон.

--
С уважением,
Анатолий Шарифулин.



--
С уважением,
Анатолий Шарифулин.


 




Copyright © Lexa Software, 1996-2009.