|
|
|
|
АРХИВ :: nginx-ru
|
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
X-Accel-Redirect и проксирование
- To: nginx-ru@xxxxxxxxx
- Subject: X-Accel-Redirect и проксирование
- From: "Анатолий Шарифулин" <sharifulin@xxxxxxxxxx>
- Date: Tue, 16 Dec 2008 16:02:51 +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:mime-version:content-type:x-google-sender-auth; bh=uhOUlUwIkonHF1a+GX0Ih1IN/4+yK6oiokupbnt6Iwk=; b=Z4yYsFzlgYZdGEtlUzIAbAj7xQN3CpU88vjaiZjZKDqA8WBWwTHtR0NdLRB/8CCwh8 Ut/yhGNz0mlNjCwtFOOHong4RYQQTZUeiz6T057U1o60vyFdAsH4M6wZcwKCQ/YHsM4Y xMxThAhadvVdfodW3HkD64VzqDbjqm/BfGSTM=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:mime-version:content-type :x-google-sender-auth; b=u9zzl+E7/pJBBtYcZSC9o8ma1SxBIb8ER+avA+lXcauOIW+lk9wkaTZ/XlDmXMSLx6 Dt0z6iXRg+D9rDtXyBO6NscDbM53A7In7VsBz7CjKcM5Ii6rfzsOqNIQ1j0Vbi/sXy8T FOXOPUP0QBnInmrm299SZ0dycVJAGOzGmlr6Q=
Привет!
Есть контент вида 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, но у меня демон общается с БД не блокируясь. Поэтому решил написать свой демон.
-- С уважением, Анатолий Шарифулин.
|
|
|