Nginx - фильтр по ip без перезапуска

_
На сайте с 01.09.2022
Offline
3
299

Сейчас баню левые сканеры по ip с помощью:
iptables -A ... DROP

Есть очень настойчивые , которые при бане сразу меняют ip (прокси и т.д.) и продолжают парсинг.

Хочу подменять контент - отдавать специальные страницы для настойчивых ботов. 
Получается, что только с помощью nginx.

Как это эффективнее сделать? Постоянно менять и перезагружать конфигурацию не хочется.

D
На сайте с 28.06.2008
Offline
1104
#1

1. /etc/init.d/nginx reload   - применение всех правок конфига без перезагрузки, сразу

2. Баньте подсети сразу (если IP похожи)  iptables -A INPUT -s 213.152.162.0/16 -j DROP

3. Проведите анализ - откуда боты и баньте страны или хостеров.

4. Мое решение 5-летней давности, работает у меня на ВПС до сих пор, надёжность проверенная годами! https://searchengines.guru/ru/forum/954988/page2#comment_14885499

5. Тоже решение давнее, но тоже очень действенное (бан подсетей крупнейших хостеров мира), как экстренная мера вполне годится. https://searchengines.guru/ru/forum/958253

lutskboy
На сайте с 22.11.2013
Offline
176
#2
Dram #:
/etc/init.d/nginx reload   - применение всех правок конфига без перезагрузки, сразу

nginx -s reload вроде еще

lutskboy
На сайте с 22.11.2013
Offline
176
#3
_well_ :
Постоянно менять и перезагружать конфигурацию не хочется.

так оно там за микросекунды перезагрузит. на работу сайта не повлияет

D
На сайте с 28.06.2008
Offline
1104
#4
lutskboy #:

так оно там за микросекунды перезагрузит. на работу сайта не повлияет

Лично у меня restart иногда занимает более 1-2 сек.

_
На сайте с 01.09.2022
Offline
3
#5
lutskboy #:
nginx -s reload

Тогда лучше так: 

nginx -t & nginx -s reload
если программные изменения в файл конфигурации вдруг внесут ошибки. 

Придется использовать этот вариант. 

И map условия то в отдельный файл:

map $remote_addr $bad_ip {
    default 0;
    192.168.0.1 1;
}

И это условие в отдельный файл и обнулять содержимое, чтобы "когда без фильтров не тормозило":

# server{
# ...
    
if ($bad_ip) {
       rewrite ...
    }
# ...
# }

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