allow/deny and return
Maxim Dounin
mdounin at mdounin.ru
Tue Oct 15 13:45:50 UTC 2013
Hello!
On Tue, Oct 15, 2013 at 03:59:53PM +0300, Gena Makhomed wrote:
> On 15.10.2013 15:45, Maxim Dounin wrote:
>
> >>В такой конфигурации:
> >>
> >>location /closed {
> >> allow 10.1.1.1;
> >> deny all;
> >> return 200 "secret\n";
> >>}
> >>
> >>allow/deny ни на что не влияют.
> >>
> >>IMHO стоит написать об этом в документации, момент не очевидный с первого взгляда.
> >
> >Если ты готов предолжить хороший способ написать об этом - мы с
> >удовольствием.
> >
> >Я, например, хорошего способа не знаю. Потому что не с первого
> >взгляда - момент в общем-то очевидный (у прочитавших документацию
> >на модуль rewrite вопросов, как мне кажется, возникнуть не
> >должно), а как это корректно рассказать не читавшим...
>
> в документации http://nginx.org/en/docs/http/ngx_http_access_module.html
> ничего не написано о том, что директивы allow и deny работают не всегда.
>
> я прочитал http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
> но так и не смог понять, почему allow и deny тут не будут работать.
Потому что директивы модуля rewrite - это фактически часть выбора
конфигурации. И именно от выбранной конфигурации зависит, что
можно, а что - нельзя.
> это все похоже на BUG, потому что пользователи обычно подразумевают,
> что сначала работает access module и только потом - rewrite_module.
>
> по крайней мере, в UNIX и даже в WINDOWS все работает именно так:
> если доступа к файлу нет, никаких операций с ним сделать нельзя.
В Антоном конфиге нет файла. Есть инструкция "при выборе
конфигурации для обработки запросов вернуть ответ с кодом 200".
(И да, я таки считаю, что возможность задавать тело ответа была
добавлена в диркетиву return зря, не её это работа. Надо было
сделать отдельный модуль a la empty gif, подобных вопросов было бы
меньше. Но таки этот фарш уже поздно проворачивать назад.)
--
Maxim Dounin
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru