|  
 |  
 
 
 |  
 | 
|  
 | АРХИВ :: 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@xxxxxxxxxSubject: Re: X-Accel-Redirect и проксированиеFrom: "Анатолий Шарифулин" <sharifulin@xxxxxxxxxx>Date: Wed, 17 Dec 2008 12:03:14 +0300Dkim-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, но у меня демон общается с БД не блокируясь. Поэтому решил написать свой демон.
 
 --
 С уважением,
 Анатолий Шарифулин.
 
 
 --
 С уважением,
 Анатолий Шарифулин.
 
 
 |  
 
 |  
 |