Доступ по IP и юсер агенту, nginx

neoks
На сайте с 17.03.2010
Offline
152
1862

Здравствуйте, подскажите как можно открыть доступ к сайту "IP - или юсер агент" в nginx

К примеру для агента можно сделать так

if ($http_user_agent !~* (Mozilla|opera)) {return 404;}

А как сделать что бы доступ к сайту был еще по IP если агент не подошел ?

кроме if ($remote_addr !~* так как список IP очень большой

Evas EvaSystems
На сайте с 31.05.2012
Offline
116
#1

Не совсем понял, вы хотите разрешить или же блокировать доступ к сайту по IP, если проверка по user agent пройдена?

Помимо $remote_addr можно использовать стандартные директивы deny и allow, в которых можно указать целую подсеть.

deny 192.168.0.0/24;

http://nginx.org/ru/docs/http/ngx_http_access_module.html

Системный администратор Linux. Настройка, сопровождение и оптимизация серверов. Отзывы - searchengines.guru/ru/forum/1017473
A
На сайте с 19.07.2010
Offline
130
#2

есть еще гео модуль: http://nginx.org/ru/docs/http/ngx_http_geo_module.html

создайте свои списки с ip-шниками и подключите к nginx

.............
neoks
На сайте с 17.03.2010
Offline
152
#3

Evas, Мне нужно что-бы доступ был или с IP или с агента, к примеру у меня IP 99.55.33.67 и браузер хром, хоть такого браузера нету в user_agent агент, но этот IP есть в списке разрешенных, значит можно пускать. Ну и на оборот, к примеру IP в списке нету но у меня Mozilla а значит можно пускать.

Evas EvaSystems
На сайте с 31.05.2012
Offline
116
#4

Понял, тогда для ип используйте ту дерективу, о которой вы говорили ранее или посмотрите в сторону того, что посоветовал вам admak.

M
На сайте с 16.09.2009
Offline
278
#5
neoks:
Мне нужно что-бы доступ был или с IP или с агента, к примеру у меня IP 99.55.33.67 и браузер хром, хоть такого браузера нету в user_agent агент, но этот IP есть в списке разрешенных, значит можно пускать. Ну и на оборот, к примеру IP в списке нету но у меня Mozilla а значит можно пускать.

1) догадайтесь как комбинировать if() с различными тестами (подсказка: используйте внутри set внутри тела if)

2) используйте geo модуль для ограничения по ип, в качестве идеи вам:

http://permalink.gmane.org/gmane.comp.web.nginx.russian/45284

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
neoks
На сайте с 17.03.2010
Offline
152
#6

myhand, про сет я знаю, вопрос был в том как избавиться от if ($remote_addr !~* сохранив конструкцию

Да и уже не нужно, все давно сделал.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий