Мы запускаем программное обеспечение для форумов (Woltlab Burning Board) на нашем сервере и выяснили, что если хотя бы два пользователя продолжают очень быстро перезагружать веб-сайт (удерживая нажатой кнопку F5), нагрузка на сервер возрастает до> 15, что приводит к очень медленному серверу. ответы.
Мы также попробовали это с новой установкой форума без каких-либо плагинов с теми же результатами. Кажется, что нагрузка исходит от apache, а не из базы данных (MySQL) или чего-то еще.
Сервер имеет следующее оборудование, которого должно быть более чем достаточно: Intel Xenon 4x3,3 ГГц, 16 ГБ ОЗУ.
Снимок экрана загрузки apache при нажатии F5: http://imgur.com/hc3RpbF
Как мы могли предотвратить такую высокую нагрузку на сервер? заранее спасибо
Техника, которую используют ваши пользователи, по сути является базовой теорией, лежащей в основе распределенных атак типа «отказ в обслуживании» (DDoS) (т. Е. Наводнения сервера таким объемом трафика, что он не может справиться).
Я бы посоветовал научить ваших пользователей использовать приложение по-другому или связаться с ними, чтобы выяснить, есть ли законная причина, по которой они используют приложение таким образом, и исправить эту причину.
Если ничего не работает, блокировка пользователей (возможно, через fail2ban) является крайней мерой. Заполнение сервера трафиком любыми способами недопустимо, а ускорение работы только позволит проблемным пользователям заполнить сервер большим объемом трафика.
Изучите возможность использования Varnish или nginx для сервера и кеширования статического содержимого. Они могут действовать как обратный прокси-сервер для Apache. Это творит чудеса со всеми настройками, которые я использовал.
Более серьезной проблемой может быть плохое программирование этого программного обеспечения.
Действительно хороший способ ограничить количество запросов, которые вы принимаете за временной интервал, - это nginx limit_req
как описано очень хорошо Вот. Вам действительно стоит приобрести какой-нибудь брандмауэр и Это запустите экземпляр nginx. Таким образом, вы также сможете подать заявку iptables
и iproute2
правила для ограничения других видов трафика (поскольку nginx касается только http).
Я использую Ubuntu для большинства задач - она поставляется с ufw
что приятно обертывать iptables. Ограничение скорости и такое делается, как описано Вот. Мне нравится обертка, так как оба iptables
и iproute2
ИМХО может быть немного больно.