[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ограничить кол-во подключений с 1ого ip
zeromind
как лучше это реализовать на стороне файервола или например в nginx прописать настройки в конфиге (видел такой модуль) ? кто может представьте свои примеры плиз, а то банальный http спам такого рода:
178.171.88.2 - - [27/Mar/2012:19:20:02 +0400] "-" 400 0 "-" "-"
достал)), nginx кидает 500 internal error, но помогает конечно блокировка в iptables, но это бред)) нужно автоматизировать процесс smile.gif



Спустя 3 часа, 1 минута, 7 секунд (28.03.2012 - 21:29) VELIK505 написал(а):
mod_limitipconn можно использовать но всё это уже устарело. Файрвол
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 40 -j REJECT :D
тоже бред правильно мыслишь.
Используй ngx_http_limit_req_module
http://nginx.org/ru/docs/http/ngx_http_limit_req_module.html
Ну и соответственно limit_zone и limit_conn тудаже у меня вот так:

http {
include mime.types;
default_type application/octet-stream;

limit_zone one $binary_remote_addr 8m;
limit_conn one 16;

означает что разрешено 16 одновременных подключений с 1ого айпи а 8m это кеш где айпи запоминаться будут (отчищается потом автоматом)

Спустя 58 минут, 25 секунд (28.03.2012 - 22:27) zeromind написал(а):
я вот сейчас вдупляю в этот модуль)) сложновато чёто
там ещё показаны директивы на уровне хоста - т.е. server, у тебя там нету записей?
а почему файервол бред ?) я думал наооборот оптимательнее ему правило повесить..
"16 одновременных подключений с 1ого ip" - это как понимать? можно же за 1 секунду циклом заспамить 1000 запросов ? ведь это не будет ограничено логично? а у меня после такого http спама nginx на 100% загружен и выкидывает 500 ошибку

у меня щяс настроено вот так:
limit_zone one $binary_remote_addr 4m;
limit_conn one 8;

кстате чем отличается то limit_req_zone от limit_zone ?

Спустя 18 часов, 44 минуты, 56 секунд (29.03.2012 - 17:12) VELIK505 написал(а):
почитай думаю решит все твои проблемы.
http://habrahabr.ru/post/67685/

Спустя 29 минут, 48 секунд (29.03.2012 - 17:42) zeromind написал(а):
теперь всё понятно, один вешает лимит на число соединений, другой на число запросов..

я так понимаю мне оптимальным будет резать число запросов, или поставить обе директивы? как ты сделал то ? )

Спустя 4 минуты, 33 секунды (29.03.2012 - 17:47) VELIK505 написал(а):
Я режу число запросов, ограничиваю сильно активных через файрвол, и ещё скриптик по крону собирает айпи ботов и заносит в файрвол на 10 минут.

Спустя 2 минуты, 28 секунд (29.03.2012 - 17:49) zeromind написал(а):
во, я это и хотел спросить..
в этой теме увидел комманду:
tail -1000 /var/log/nginx-access.log | grep " 503 " | cut -f1 -d" " | sort -u

протестил, действительно работате, только я подставил http код - 400..
можеш дать скрипт баша, как ты это в кроне реализовываеш ?)
был бы очень благодарен тебе smile.gif

Спустя 2 минуты, 4 секунды (29.03.2012 - 17:51) VELIK505 написал(а):
Цитата (zeromind @ 29.03.2012 - 14:49)
можеш дать скрипт баша, как ты это в кроне реализовываеш ?)

Не=)
Это тоже самое что я попрошу а скинь мне своё ядро и классы из своей CMS. biggrin.gif

Спустя 2 минуты, 3 секунды (29.03.2012 - 17:53) zeromind написал(а):
жадина smile.gif
хоть намекни алгоритм? выбрали ip адреса, мне получается нужно как то их спарсить и занести в iptables на 10минут?

дело в том, что в баш коммандах не силён я smile.gif)

Спустя 2 минуты, 38 секунд (29.03.2012 - 17:56) VELIK505 написал(а):
ты пишешь айпи ботов в файл обычный хоть текстовый по крону раз в 5 мин забираешь айпишники из этого файла и заносишь в файрвол на 10 мин.

Спустя 4 минуты, 55 секунд (29.03.2012 - 18:01) zeromind написал(а):
эм ещё вопрос:
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;

2 запроса в секунду, это именно HTTP запроса? т.е. если у меня много css + js и картинок, в итоге для загрузки 1 страницы нужно 20-30 http запросов.. их же надо все учитывать ? )

Спустя 1 минута, 16 секунд (29.03.2012 - 18:02) zeromind написал(а):
у меня после пару минут такого спама, error лог вырос до 12 гб)) ужас блин)

Спустя 52 минуты, 23 секунды (29.03.2012 - 18:54) VELIK505 написал(а):
Цитата (zeromind @ 29.03.2012 - 15:01)
эм ещё вопрос:
limit_req_zone $binary_remote_addr zone=one:10m  rate=2r/s;
css + js и картинок, в итоге для загрузки 1 страницы нужно 20-30 http запросов.. их же надо все учитывать ? )

Да.
Но у меня 3 обращения к nginx 1css + 1 js + favicon (все картинки в 1ом спрайте)

Спустя 10 минут, 42 секунды (29.03.2012 - 19:05) zeromind написал(а):
а ты css все стили в 1 файл запихнул или это делаеш динамически с помощью php?
со спрайтами заморачиватся не хочется), притом если картинки не интерфейсные, а так ввиде новости итд

я на форуме недавно видел header.js вроде, обьединеяет js файлы вроде как.. щяс гуглю найти не могу)

Спустя 1 час, 2 минуты, 32 секунды (29.03.2012 - 20:08) VELIK505 написал(а):
Цитата (zeromind @ 29.03.2012 - 16:05)
а ты css все стили в 1 файл запихнул или это делаеш динамически с помощью php?
со спрайтами заморачиватся не хочется), притом если картинки не интерфейсные, а так ввиде новости итд
я на форуме недавно видел header.js вроде, обьединеяет js файлы вроде как.. щяс гуглю найти не могу)

С помощью php собираю все css-ки и при выводе в поток отдаю 1 css-ку

Спустя 12 минут, 29 секунд (29.03.2012 - 20:20) zeromind написал(а):
с js та же тема? а если у меня на странице галлерея ? 20 картинок, и все возвращают 304 - not modified, все равно же считается как запрос логично ? ) надо щяс оптимальное число получается подобрать..

Спустя 1 минута, 32 секунды (29.03.2012 - 20:22) VELIK505 написал(а):
js тоже на выходе можно собирать в 1. Можно даже css и js делать в 1 обращение к серверу!!
Знал о таком?

А насчёт спрайтов это проще просто собрал всё в 1 картину и через бэкграунд позишн вывел.
А если динамические посмотри как Яндекс в поиске фавиконки сайтов выдаёт и они все в спрайте уже на выходе получаються на лету спрайт формируют вот это надо думать как сделать, ну это уже на сильно мощных проектах такое мутить надо они экономят на этом миллионы обращений к серверу в сутки а мы будем экономить 50 biggrin.gif
ну опыт того стоит заморочится.

Спустя 1 час, 18 минут, 57 секунд (29.03.2012 - 21:41) zeromind написал(а):
так если поставить ограничения в 100 запросов, это ни много ли? получается гдето в секунду 2-3 макс 4 раза можно страницу открыть
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.