Заскринил
Но у вас странный сайт на самом деле, вот у меня с гварда статистика за час, мой ИМ нагрузку особо даже не ощущает
А мой знакомый программист говорит обратное, что кто-то серьезно специально ддосит сайт. Целенаправлено.
Заблокируйте нецелевые страны, то есть страны, на которые не рассчитан ваш контент. Атака уровня L7 это полностью легитимные запросы, у вас на сайте находят самый ресурсоемкий запрос и начинают в него долбить, это по сути самая простая атака.
Защитить самое простое это закрыть атакующие страны, блокировать тех у кого странные реферы, поставить лимиты на запросы, на крайний случай отключить временно такие скрипты если они не сильно актуальны. Можно по подсетям банить если они хостерские.
PS а капчу можно и рекапчу от гугла поставить или от любого другого сервиса даже свою на уровне CMS сделать страничку и к сессии привязаться. CF для РФ сомнительный вариант, если у вас сайт не на РФ, конечно убирайте под CF не совсем понятно зачем вам был гвард, а если под РФ то остальные страны можно смело блокировать, хотя бы на время атаки
кроме железа, еще вопрос и оптимизации движка cms или сайта если рукописный, а также индексов в БД
а еще можно на расте переписать всё =))) но тут вопрос конкретно как под конкретный проект понять какие поставить настройки, вот я говорю чтобы что то настраивать надо иметь хотя бы какие то минимальные метрики и от них отталкиваться
для впс 2 ядра 4гб какие оптимальные настройки?
нет оптимальных настроек по железу, надо крутить настройки и смотреть результаты. Я советую всегда поставить какой то мониторинг, самый простой уже выше давал https://amplify.nginx.com/ он мониторит nginx, php-fpm, и БД, там сразу можно тюнить и видеть результаты
оптимально в принципе для этого сервера должно быть
pm = dynamic
pm.max_children = 40
pm.start_servers = 8
pm.min_spare_servers = 4
pm.max_spare_servers = 12
pm.max_requests = 500
Как вы это определяете? =))) Это достаточно мало, у вас 40 дочерних процессов, я хз что у вас за сайт. И зачем вы каждые 500 запросов убиваете тред?
Я не претендую конечно на какую то первую инстанцию, но например у меня вот такой конфиг на каждый инстанс
pm.max_children = 50pm.start_servers = 14pm.min_spare_servers = 10pm.max_spare_servers = 18
Для процесса php выделено 512Мб, каждый инстанс ограничен 4Гб памятиВот 6 инстанцев на хост машине с 12 ядрами и 8Гб оперативки
Как видно даже 50 потоков не могут сожрать всю доступную память, а у меня нагрузка на бэк примерно 20-25rps днем
С учетом того что на хост машине не только php-fpm крутится а еще есть вспомогательные приложения, загрузка хостмашины примерно натая в течении дня
Я бы на вашем месте поиграл с настройками, можете поставить агента https://amplify.nginx.com/и посмотреть потребление вашим php-fpm и поиграть настройками, главное не делайте дочерних тредов больше чем может быть подключений к БД
Это образно было написано, но суть понятна. Для шаред хостинга это делают в .htacess, можно и на VPS делать.. Можно и аддон от cloudflare поставить.
в htaccess это делать уже поздно, любой запуск любого приложения порождает процесс который занимает в целом ресурсы
Обычно это делают в файрволе, например iptables, но явно не в роботс =))
В большинстве случаев у хостера есть L3-L4 защита на уровне оборудования, на L7 в большинстве помогает заблочить страны все, кроме основных для которых сайт. Сидеть за CF в России например сейчас сомнительный совет, сайты не открываются при проксировании
Только хардкор, только чистый PHP и JS, чтобы потом крышу сорвало от кодокопания =)))) А то развели тут на 5 страниц =)))))
Только хардкор это когда у тебя интернет магазин в инфре выглядит вот так =)))
И вы все еще верите в пони? Ну точнее что кто то кому то рассказывает рабочие методы или как их искать? Даже не так, вы до сих пор думаете что яндекс сливает свои алгоритмы куда то? =))
Ангуляр первой версии это трешняк, и 1 версия и остальные это 2 разных ангуляра =)) хорошо что первую версию похоронили, это был не самый удачный эксперимент =))