Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nginx-ru Digest, Vol 47, Issue 4
- To: nginx-ru@xxxxxxxxx
- Subject: Re: nginx-ru Digest, Vol 47, Issue 4
- From: Maxim Dounin <mdounin@xxxxxxxxxx>
- Date: Mon, 2 Sep 2013 14:29:59 +0400
- In-reply-to: <CAK1EO=UASpmRMd9U5Ze7M1uQPPN3MYi_C599c6i1bQ5XAPZZSw@mail.gmail.com>
- References: <mailman.2359.1378084565.22071.nginx-ru@nginx.org> <CAK1EO=UASpmRMd9U5Ze7M1uQPPN3MYi_C599c6i1bQ5XAPZZSw@mail.gmail.com>
Hello!
On Mon, Sep 02, 2013 at 11:38:22AM +0300, Андрей Середенко wrote:
> В таком случае, если отрабатывает только последний из if'ов - то в данной
> конфигурации:
>
> location ~* /test/url/Page.asmx {
[...]
> set $my_ipsrc 0;
> # allow 10.10.1.75/32;
> if ($remote_addr = 10.10.1.75) { set $my_ipsrc 1; }
> # allow 10.20.1.20/32;
> if ($remote_addr = 10.20.1.20) { set $my_ipsrc 1; }
> # allow 10.20.1.21/32;
> if ($remote_addr = 10.20.1.21) { set $my_ipsrc 1; }
> # allow 10.100.1.0/24;
> if ($remote_addr = 10.100.1.0/24) { set $my_ipsrc 1; }
JFYI: эта проверка никогда не срабатывает, т.к. операция "=" - это
сравнение со строкой, а адрес не может выглядеть как
"10.100.1.0/24".
> # allow 178.111.122.133/32;
> if ($remote_addr = 178.111.122.133) { set $my_ipsrc 1; }
> # deny all;
> if ($my_ipsrc = 0) { return 500; }
> }
>
> всем, кроме последнего адреса, должно возвращаться "500" ?
> или лыжи не едут? :)
Вы неправильно прочитали то, что было написано. Запрос будет
обрабатываться в контексте неявного location'а, относящегося к
последнему сработавшему if'у. E.g., для ip 10.10.1.75 запрос
будет обротан в контексте
if ($remote_addr = 10.10.1.75) { set $my_ipsrc 1; }
со всеми вытекающими из этого последствиями вроде отсутствия
try_files.
Но вообще конфигурация, скажем так, далека от разумного.
Правильно - использовать allow/deny (+ error_page, если нужно
вместо 403 выдать 500) или geo{}.
Ссылки по теме:
http://nginx.org/ru/docs/http/ngx_http_access_module.html
http://nginx.org/ru/docs/http/ngx_http_geo_module.html
--
Maxim Dounin
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|