Вопрос частично один из отвергая плохое движение, и частично один из улучшения производительности вашего собственного кода.
Нанесение чрезмерного трафика с помощью злонамеренных намерений называется атакой «Отказ в обслуживании». Идея состоит в том, чтобы поразить сайт трафиком до такой степени, что сервер не может справиться с нагрузкой, перестает отвечать на запросы, и, таким образом, никто не сможет пройти, и сайт будет отключен.
Но вы также можете столкнуться с большим количеством трафика просто потому, что ваш сайт становится популярным. Это может произойти быстро и без предупреждения, например, если кто-то разместит ссылку на ваш сайт на другом популярном сайте. Этот трафик действительно может быть подлинным и желательным (сто дополнительных продаж! Yay!), Но может иметь такой же эффект на вашем сервере, если вы не готовы к этому.
Как говорили другие, важно настроить ваш веб-сервер для работы с большими объемами трафика; Я позволю другим ответам говорить сами за себя, и это важный момент, но есть вещи, которые вы можете сделать в своем собственном коде, чтобы улучшить ситуацию.
Одной из основных причин, по которым сервер не справляется с повышенной нагрузкой, является время обработки запроса.
Ваш веб-сервер будет иметь возможность обрабатывать определенное количество запросов одновременно, но ключевое слово здесь является «одновременным», а ключом к уменьшению количества одновременных запросов является сокращение времени, которое требуется для вашей программы для запуска.
Представьте, что ваш сервер может обрабатывать десять одновременных запросов, и ваша страница занимает одну секунду для загрузки.
Если вы получаете до десяти запросов в секунду, все будет работать бесперебойно, потому что сервер может справиться с этим. Но если вы немного перейдете к этому, то одиннадцатый запрос либо потерпит неудачу, либо придется ждать, пока остальные десять не закончатся. Затем он будет работать, но будет потреблять десять запросов. К тому моменту, когда прошло десять секунд, вы целая секунда на свое время отклика, и он продолжает ухудшаться, пока запросы продолжают наливаться на одном уровне. Сервер не займет много времени, так как сервер будет перегружен, даже если это всего лишь небольшая часть по сравнению с его пропускной способностью.
Теперь представьте, что одна и та же страница может быть оптимизирована, чтобы сократить время, скажем, полсекунды. Теперь тот же сервер может обрабатывать 20 запросов в секунду, просто потому, что код PHP быстрее. Но также, это будет легче для него оправиться от избыточного трафика. И поскольку PHP-код занимает меньше времени для запуска, меньше шансов на то, что любые заданные запросы будут одновременными в любом случае.
Вкратце, способность сервера справляться с высокими объемами трафика увеличивает невероятно, поскольку вы сокращаете время, затрачиваемое на обработку запроса.
Таким образом, это ключ к тому, что сайт переживает всплеск высокого трафика: заставьте его работать быстрее.
Кэширование: CMS, такие как Drupal и Wordpress, имеют встроенное кэширование. Убедитесь, что он включен. Для еще большей производительности рассмотрите систему кеша уровня сервера, такую как Varnish. Для системы типа CMS, в которой вы не меняете контент страницы, это самая важная вещь, которую вы можете сделать для повышения производительности.
Оптимизация кода: в то время как вы не можете ожидать, чтобы исправить проблемы с производительностью в программное обеспечение сторонних производителей, как Drupal, вы можете анализировать производительность вашего собственного кода, если у вас есть. Пользовательские модули Drupal, может быть? Используйте инструмент профилировщика, чтобы найти узкие места. Очень часто такой анализ может выявить, что на узкое место приходится 90% времени загрузки страницы. Не беспокойтесь об оптимизации небольшого материала, но если вы сможете найти и исправить одно или два больших узких места, как это, это может иметь драматический эффект.
Надеюсь, что это поможет.
http://en.wikipedia.org/wiki/Denial-of-service_attack –
Необходимо заблокировать запрос, пока вы не получите запрос, который вы не можете определить, заблокирован он или нет. Так что уже слишком поздно :( – piddl0r