ПРОЕКТЫ 


  АРХИВ 


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: Встроенные mime-types



On Sat, Nov 03, 2007 at 11:23:30PM +0300, Максим Чечель wrote:

> Есть такая задача: сделать виртуальный хост на котором лежит всякая
> статика: картинки, видео и т.п., причём сделать это нужно таким
> образом чтобы каждый запрошенный файл выдавался через
> Content-Disposition, т.е. браузер предлагал пользователю его скачать.
> Не найдя в документации ничего на эту тему закомментировал в
> nginx.conf строчку:
> 
> include       conf/mime.types;
> 
> Полагая при этом, что теперь сервер будет отдавать все файлы как
> octet-stream, поскольку в конфиге прописано умолчальное:
> 
> default_type  application/octet-stream;
> 
> однако этого не происходит: при запросе .jpg файла сервер отдаёт
> корректный mime тип:
> 
> $ wget -S http://download.somehost.ru:8080/m/t/mtmam5ls.jpg
> --23:17:26--  http://download.somehost.ru:8080/m/t/mtmam5ls.jpg
>            => `mtmam5ls.jpg'
> Распознаётся download.somehost.ru... 127.0.0.1
> Устанавливается соединение с download.somehost.ru|127.0.0.1|:8080...
> соединение установлено.
> Запрос HTTP послан, ожидается ответ...
>   HTTP/1.1 200 OK
>   Server: nginx/0.5.26
>   Date: Sat, 03 Nov 2007 20:17:26 GMT
>   Content-Type: image/jpeg
>   Content-Length: 96345
>   Last-Modified: Thu, 01 Nov 2007 21:04:57 GMT
>   Connection: keep-alive
>   Keep-Alive: timeout=20
>   Accept-Ranges: bytes
> Длина: 96.345 (94K) [image/jpeg]
> 
> Каким образом nginx угадывает mime-type не имея "include
> conf/mime.types;" в конфиге? Буду благодарен если поскажете ответ и на

http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#types

> первый вопрос: как отдавать все файлы заданного хоста через
> Content-Disposition?

Как-то так:

     location / {

         types  { }

         default_type  application/octet-stream;

         root  ...;

         if ($uri ~ ^/.*([^/]\.[^/])$) {
             set   $name   $1;
             add_header  Content-Disposition   $name;
         }
     }


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.