Re: Как разрешить только определенный content-type в ответе от upstream?
Maxim Dounin
mdounin at mdounin.ru
Thu Jun 5 12:11:11 UTC 2014
Hello!
On Thu, Jun 05, 2014 at 04:27:02AM -0400, endo wrote:
> Доброго дня всем.
>
> Возник вопрос: как реализовать логику фильтрации content-type в ответе от
> upstream , и в зависимости от этого - отдавать определенный код (404 если не
> разрешенный content-type от апстрима).
>
>
> Пробовал через переменную $upstream_http_content_type
>
> map $upstream_http_content_type $ctype_allowed {
> default 0;
> "~image" 1;
> }
>
> ...
> add_header X-ctype $ctype_allowed;
>
> в таком варианте заголовок проставляется вроде бы правильный, но как по
> переменной $ctype_allowed или в принципе по содержимому заголовков от
> апстрима разрешить или запретить ответ клиенту?
Для произвольного типа - никак, надо писать собственный фильтр,
который сделает это (ну или искать сторонний).
Конкретно для картинок - имеет смысл посмотреть на "image_filter
test". Там, правда, не проверка типа, а анализ сигнатур
содержимого (и безусловное переопределение типа по результатам
анализа). Подробности тут:
http://nginx.org/ru/docs/http/ngx_http_image_filter_module.html
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru