178.171.88.2 - - [27/Mar/2012:19:20:02 +0400] "-" 400 0 "-" "-"
достал)), nginx кидает 500 internal error, но помогает конечно блокировка в iptables, но это бред)) нужно автоматизировать процесс
Спустя 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 тудаже у меня вот так:
означает что разрешено 16 одновременных подключений с 1ого айпи а 8m это кеш где айпи запоминаться будут (отчищается потом автоматом)
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 ?
там ещё показаны директивы на уровне хоста - т.е. 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/
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..
можеш дать скрипт баша, как ты это в кроне реализовываеш ?)
был бы очень благодарен тебе
в этой теме увидел комманду:
tail -1000 /var/log/nginx-access.log | grep " 503 " | cut -f1 -d" " | sort -u
протестил, действительно работате, только я подставил http код - 400..
можеш дать скрипт баша, как ты это в кроне реализовываеш ?)
был бы очень благодарен тебе
Спустя 2 минуты, 4 секунды (29.03.2012 - 17:51) VELIK505 написал(а):
Цитата (zeromind @ 29.03.2012 - 14:49) |
можеш дать скрипт баша, как ты это в кроне реализовываеш ?) |
Не=)
Это тоже самое что я попрошу а скинь мне своё ядро и классы из своей CMS.
Спустя 2 минуты, 3 секунды (29.03.2012 - 17:53) zeromind написал(а):
жадина
хоть намекни алгоритм? выбрали ip адреса, мне получается нужно как то их спарсить и занести в iptables на 10минут?
дело в том, что в баш коммандах не силён я )
хоть намекни алгоритм? выбрали ip адреса, мне получается нужно как то их спарсить и занести в iptables на 10минут?
дело в том, что в баш коммандах не силён я )
Спустя 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 запросов.. их же надо все учитывать ? )
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 файлы вроде как.. щяс гуглю найти не могу)
со спрайтами заморачиватся не хочется), притом если картинки не интерфейсные, а так ввиде новости итд
я на форуме недавно видел 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
ну опыт того стоит заморочится.
Знал о таком?
А насчёт спрайтов это проще просто собрал всё в 1 картину и через бэкграунд позишн вывел.
А если динамические посмотри как Яндекс в поиске фавиконки сайтов выдаёт и они все в спрайте уже на выходе получаються на лету спрайт формируют вот это надо думать как сделать, ну это уже на сильно мощных проектах такое мутить надо они экономят на этом миллионы обращений к серверу в сутки а мы будем экономить 50
ну опыт того стоит заморочится.
Спустя 1 час, 18 минут, 57 секунд (29.03.2012 - 21:41) zeromind написал(а):
так если поставить ограничения в 100 запросов, это ни много ли? получается гдето в секунду 2-3 макс 4 раза можно страницу открыть