Забудьте о Windows
Несмотря на невероятно самонадеянную рекламу, продукция Microsoft никогда не отличалась повышенной надежностью. Серверы на Windows подвержены DDos-атакам чуть ли не втрое больше Linux-овых. Так что забота о безопасности диктует вам выбор Linux и *BSD.
Закажите защищенный серверСамое простое, конечно — заказ защищенного сервера. Профессиональная ddos защита позволяет не забивать себе голову лишними проблемами. Ими будут заниматься специалисты, которые все ниже перечисленные тонкости хорошо знают, а вы, в свою очередь, спокойно спите и можете посвятить свое время другим интересным вещам.
Заблокируйте блок адресов по геоданным
Не самый лучший вариант, так как метод «я тибо по айпи вычислю» хорошо работает только в мечтах школьников. На вас нападает китайская сеть ботов? К популярному серверу nginx хорошо прикручивается расширение, позволяющее заблокировать, к примеру, всех китайских юзеров. Вот только вдруг вы потеряете на этом клиентов?
Заблокируйте часть сайта
DDoS-атаки, как показывает практика, направлены на наименее защищенную часть сайта. В процессе отбивания атаки можно настроить ответ сервера 444 при вызове процедуры, которая роняет сайт. Тогда все остальные функции сайта будет доступны, а вы пока сможете анализировать, откуда растут ноги атаки.
Включаем дебаггер
Если все это не помогло, вам понадобятся два главных инструмента программиста — отладчик и умение им пользоваться. Воспользовавшись дебаггером, посмотрите, какой модуль забирает больше всего ресурсов сервера. Если все висит, отключите машину от интернета, возьмите лог обращений к серверу и пропустите его последовательно через отладчик. Если сайт работает, обратитесь последовательно к разным его модулям, плагинам, базе…
Как правило, собака зарыта именно в базе — любой запрос нагружает сервер. Это справедливо для самой распространенной базы для работы сайтов MySQL. Разрешить проблему слишком тяжелых запросов помогает команда explain — курите мануалы. Но для начала найдите корень зла.