Welcome! Log In Create A New Profile

Advanced

Re: allow/deny and return

Gena Makhomed
October 15, 2013 12:16PM
On 15.10.2013 16:45, Maxim Dounin wrote:

>>>> В такой конфигурации:
>>>>
>>>> location /closed {
>>>> allow 10.1.1.1;
>>>> deny all;
>>>> return 200 "secret\n";
>>>> }
>>>>
>>>> allow/deny ни на что не влияют.
...
>> я прочитал http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
>> но так и не смог понять, почему allow и deny тут не будут работать.

> Потому что директивы модуля rewrite - это фактически часть выбора
> конфигурации. И именно от выбранной конфигурации зависит, что
> можно, а что - нельзя.

вот дословно что сейчас написано в документации:

The ngx_http_rewrite_module module is used to change URIs using regular
expressions, return redirects, and conditionally select configurations.

"conditionally select configurations" - это только evil директива "if".
остальные директивы, кроме rewrite, являются unconditional. разве нет?

>> это все похоже на BUG, потому что пользователи обычно подразумевают,
>> что сначала работает access module и только потом - rewrite_module.
>>
>> по крайней мере, в UNIX и даже в WINDOWS все работает именно так:
>> если доступа к файлу нет, никаких операций с ним сделать нельзя.

> В Антоном конфиге нет файла. Есть инструкция "при выборе
> конфигурации для обработки запросов вернуть ответ с кодом 200".

файла нет. но есть location /closed и есть директивы задания доступа
кому allow, а кому deny. то что return срабатывает раньше deny - это
будет совершенно неожиданно для более чем 99% пользователей nginx...

> (И да, я таки считаю, что возможность задавать тело ответа была
> добавлена в диркетиву return зря, не её это работа. Надо было
> сделать отдельный модуль a la empty gif, подобных вопросов было бы
> меньше. Но таки этот фарш уже поздно проворачивать назад.)

почему поздно? и сейчас можно сделать отдельный модуль return, который
будет срабатывать как content handler возвращая код статуса и урл/текст

return code [text];
return code URL;
return URL;

а из модуля rewrite директиву return тогда можно будет вообще убрать.
в этом случае - вообще ничего не изменится, кроме того, что директивы
из access module отработают раньше, чем return, как это и должно быть.

P.S. есть такая книга "Безумно просто. Вдохновляющие примеры Apple"
http://www.mann-ivanov-ferber.ru/books/paperbook/bezumno-prosto/
см. "Отрывки из книги, [PDF] Введение. Посох Простоты 113 КБ".

из рецензии:

«Простота всегда в моде», — говорит автор книги Кен Сигал. «Бизнес
тенденции приходят и уходят, но простота остается всегда. Предпочтение
простоте заложено в нашей ДНК и это вряд ли изменится в течение
нескольких миллиардов лет.

Организации, которые понимают это могут превратить простоту в
конкурентное преимущество. Поэтому, что это просто жизненный факт: при
наличие выбора, человек всегда выберет более простой путь. Внутри
огранизации простота экономит время и деньги, создает лучшие условия
работы и поднимает боевой дух. Совсем не плохо для концепции, которая не
стоит ни копейки».

--
Best regards,
Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

allow/deny and return

Anton Yuzhaninov October 15, 2013 08:28AM

Re: allow/deny and return

Maxim Dounin October 15, 2013 08:46AM

Re: allow/deny and return

Ruslan Ermilov October 15, 2013 08:54AM

Re: allow/deny and return

Gena Makhomed October 15, 2013 09:00AM

Re: allow/deny and return

Maxim Dounin October 15, 2013 09:46AM

Re: allow/deny and return

Gena Makhomed October 15, 2013 12:16PM

Re: allow/deny and return

Maxim Dounin October 15, 2013 01:00PM

Re: allow/deny and return

Oleksandr V. Typlyns'kyi October 16, 2013 03:40AM

Re: allow/deny and return

Gena Makhomed October 16, 2013 10:02AM

Re: allow/deny and return

Maxim Dounin October 16, 2013 11:22AM

Re: allow/deny and return

Gena Makhomed October 16, 2013 12:58PM

Re: allow/deny and return

Maxim Dounin October 16, 2013 01:34PM

Re: allow/deny and return

Gena Makhomed October 16, 2013 02:30PM

Re: allow/deny and return

Maxim Dounin October 16, 2013 07:20PM

Re: allow/deny and return

Gena Makhomed October 17, 2013 08:56AM

Re: allow/deny and return

Maxim Dounin October 17, 2013 10:10AM

Re: allow/deny and return

Gena Makhomed October 17, 2013 02:14PM

Re: allow/deny and return

Maxim Dounin October 18, 2013 07:42AM

Re: allow/deny and return

Gena Makhomed October 18, 2013 09:20AM

Re: allow/deny and return

Maxim Dounin October 18, 2013 09:52AM

Re: allow/deny and return

Gena Makhomed October 20, 2013 09:28AM

Re: allow/deny and return

Maxim Dounin October 21, 2013 08:38AM

Re: allow/deny and return

Илья Шипицин October 21, 2013 09:02AM

Re: allow/deny and return

Maxim Dounin October 21, 2013 11:50AM

Re: allow/deny and return

Gena Makhomed October 21, 2013 01:46PM

Re: allow/deny and return

Maxim Dounin October 21, 2013 02:38PM

Re: allow/deny and return

Gena Makhomed October 21, 2013 05:46PM

Re: allow/deny and return

Maxim Dounin October 21, 2013 06:34PM

error_page 404 и ngx_http_index_module

Gena Makhomed August 22, 2014 03:12PM

Re: error_page 404 и ngx_http_index_module

Maxim Dounin August 25, 2014 08:48AM

Re: error_page 404 и ngx_http_index_modul e

Gena Makhomed August 26, 2014 03:24PM

Re: allow/deny and return

Anton Yuzhaninov October 16, 2013 05:14AM

Re: allow/deny and return

Ruslan Ermilov October 16, 2013 01:26PM

Re: allow/deny and return

Maxim Dounin October 16, 2013 02:20PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 165
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready