Сервер грузится от частого выполнения скрипта

iccup
На сайте с 01.05.2016
Offline
195
767

Кто-то, не особо заморачиваясь, вот уже второй час пытается положить мой сервер. Раз ему это удалось, я найдя причину просто отключил некоторые функции на сайте. А именно, сайт с картинками, у пользователя есть возможность выбрать разрешение и скачать в нужном ему разрешении изображение. Все это делает imagick, т.е. нет уже готовых разрешение и imagick работает с исходым изображение. Все это ему передает небольшой незатейливый скриптик. Так вот, кто-то просто напросто делает много POST запросов на этот скрипт, тем самым нагружая не только канал, но и процессор, память. Пока я убрал функцию с разрешением.

Что же делать? Как можно ограничить выполнения скрипта по времени для одного ip? Или есть другие способы?

kimsufi.com ( https://www.kimsufi.com ) очень дешевые и качественные дедики https://clck.ru/gvF9p - антибот, использую уже 3 года.
Евгений Крупченко
На сайте с 27.09.2003
Offline
178
#1

конечно - ограничить по времени для ip. кэп.

но есть и другие способы.

это из разряда - у меня пока посетителей не много, обойдусь php скриптом.

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

в чем сложность сохранять фотки после первого запроса и на последующие чтобы отдавать уже готовые?

на сайте же есть .css какие-то? подмешайте при их отдаче в заголовок какую-нибудь cookie.

потом скрипт пусть проверяет, если post и нет этой cookie - слать в лес. или записывать ip куда-то, чтоб по этому списку не пускать вообще больше никуда к себе.

Skom
На сайте с 02.12.2006
Offline
166
#2

Можно ограничить количество запросов скрипта с одного айпишника.

https://nginx.org/ru/docs/http/ngx_http_limit_req_module.html

Например, поставить ограничение в 10 запросов в минуту.

Cras amet qui numquam amavit quique amavit cras amet
danforth
На сайте с 18.12.2015
Offline
153
#3

Лучше всего миниатюры сгенериророванные скриптом сохранять на диск, и затем отдавать пользователям через Nginx. От большого количества запросов ограничение по IP вас не спасет, есть куча бесплатных проксей через которые можно делать GET запрос и даже не дожидаясь ответа, делать следующий.

Junior Web Developer
pro_web
На сайте с 02.08.2011
Offline
109
#4

Может все же установите анти досс ну иль Cloudflare попробуйте... В htaccess создайте правило по блокировке. Так же с панели сервера.

Продам страницу в Facebook. 31к подписчиков (тематика юмор). Подробности в лс.
iccup
На сайте с 01.05.2016
Offline
195
#5

сделали проверку по Ip и кукам. т.е. ограничение на скачивание в промежуток времени.

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