Как избежать загрузки ЦП в 90% при нажатии F5 в браузере?

Как избежать загрузки ЦП в 90% при нажатии F5 в браузере?

У меня есть сайт на PHP, и если я нажимаю F5 в браузере, то получаю следующую загрузку ЦП:

$ w 11:34:54 up 16 дней, 1 мин, 5 пользователей, средняя загрузка: 90,81, 32,02, 12,57

Это происходит со всех страниц моего сайта! Так что я считаю, что это происходит не из-за алгоритма, а из-за конфигурации Apache? Я не совсем в этом уверен.

Я использую PHP (с codeigniter), mongoDB с одним соединением. Я использую глобальную константу для использования моего соединения и использую его повторно каждый раз. Я не создаю новое соединение для каждого запроса. Почти все веб-страницы отвечают менее чем за 300 мс.

Так он приходит от Apache (и тогда я задаю свой вопрос на правильном сайте stackechange) или он приходит от моего глобального PHP-подключения (и тогда я переключаюсь на stackoverflow)?

Или это происходит из другого параметра? Если это происходит из Apache, есть ли способ ограничить количество одновременных подключений? Потому что загрузка одной и той же страницы снова и снова, не дожидаясь завершения первого запроса, - это неправильное поведение.

Так что кто-то может вывести мой сервер из строя, только нажав F5... Если бы это был DDOS, ладно, но «просто» DOS...

Спасибо вам,

А.

решение1

Вы можете попробовать следующие модули

  • mod_evasive(Модуль обхода атак типа «отказ в обслуживании» для Apache)
  • mod_limitipconn(Модуль ограничения одновременных подключений для Apache)
  • mod_cband(Модуль Apache 2 предназначен для решения проблемы ограничения использования полосы пропускания пользователями и виртуальными хостами.)

Theнитьможет быть также полезно

Еще один момент. Вы можете настроить nginx за apache, так как он имеет очень гибкие возможности ограничения скорости

Связанный контент