nginx отдает неправильный хедер Content-Type

Andrew Kopeyko kaa at zvuki.ru
Thu Oct 29 14:51:17 MSK 2009


Станислав wrote:
> Andrew Kopeyko пишет:
>> On Wed, 28 Oct 2009, Станислав wrote:
>>
>>> Здравствуйте!
>>
>> Вечер добрый!
>>
>>> Вот недавно столкнулся с проблемой...
>> ....
>>>
>>> location ^~ /forum/style_images/ {
>>>           root   /var/www/blahblah.ru;
>>>           types {
>>>               text/plain php php3 php4 php5 phtml phps pl pm;
>>>           }
>>>       }
>>>
>>> и тут пдыщ......
>> ....
>>> Content-Type: application/octet-stream
>>> Content-Length: 31730
>>> Last-Modified: Sat, 18 Apr 2009 09:48:59 GMT
>>> Connection: close
>>> Accept-Ranges: bytes
>>>
>>> в mime.types четко написано
>>
>> Ещё чётче написано в 
>> http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#types - 
>> types будут переопределяться, а не добавляться к вышеописанным.
>>
>> Задайте в этом location все нужные вам mime-types, "отрезав" опасные - 
>> и будет вам счастье.
>>
> Ясно... читал ман, но изначально воспринял для себя его как-то иначе...

Почему?
В nginx такое поведение "стандартно" для всех директив.

> Если я правильно понял, самый простой вариант будет, это создать второй 
> файл mime-types и там исключить то, что мне не нужно...

Да, так должно сработать.

Но вам уже правильно заметили - обрабатываются fastcgi не nginx'ом, 
поэтому решение вашей проблемы, вероятнее, лежит не в подмене 
content-type, а в запрете отдавать текст "fastcgi-скриптов" (а если там 
будет вписан пароль к БД\удалённому серверу?), что возможно сделать 
описание отдельного location с regexp'ом. Например:
   location ~* /forum/style_images/.*\.cgi {
       root   /noтexistent;
   }
и заменить (иначе - не сработает)
- location ^~ /forum/style_images/ {
+ location    /forum/style_images/ {


-- 
Best regards,
Andrew A. Kopeyko <kaa at zvuki.ru>
http://www.zvuki.ru/





More information about the nginx-ru mailing list