У меня есть интернет-магазин prestashop, размещенный на Digitalocean (ubuntu 18 / lamp), и со вчерашнего дня процессор сервера и память всегда работают на 100%, даже если на мой сайт не более 300 посещений в день.
Я отслеживал, где могла возникнуть проблема, и после того, как я запустил goaccess в журналах apache, я обнаружил, что только сегодня сервер был поражен 260 000 раз из Азии (все они поступали с устройств Android), и попадания не были некоторые конкретные URL-адреса, но для тысяч или реальных страниц с моего сайта, и, похоже, обращения не от известного сканера (я также проверял netstat и вижу тонны внешнего адреса
ips…)
Я мало знаю о серверах, не могли бы вы помочь мне понять, что может происходить?
Спасибо!
С вашей точки зрения, обращения фактически представляют собой отказ в обслуживании.
Есть ряд вещей, которые вы не можете сделать. Если вы не обслуживаете азиатские рынки, вы можете заблокировать трафик на основе IP-блоков (я сам успешно сделал это, когда увидел большое количество незапрошенных зондов из определенных сетей, я заблокировал весь диапазон IP-адресов).
Блокировку можно легко выполнить в Linux с помощью iptables (или аналогичного).
Если вы посетите сайт IANA, вы можете получить доступ к спискам назначенных блоков IP-адресов, и если вы можете разработать схему для тех, которые вы хотите заблокировать, тогда просто заблокируйте их.
Так, например, если вы видите блок xy0.0 / 16 (это большой блок), назначенный внешнему реестру, и оттуда исходит много трафика, вызывающего проблемы, вы можете заблокировать его с помощью iptables вроде этого:
iptables -I INPUT -s x.y.0.0/16 -j DROP
Также полезно сделать ваш сайт более устойчивым. Обычно со стеком LAMP tyoe довольно много накладных расходов, связанных с обслуживанием страницы, установкой соединения с базой данных, обработкой сценариев, возможно, вызовами внешних веб-сервисов и т. Д. Даже достаточно мощные серверы могут быть довольно легко перегружены.