Опытный - Репутация: 187
- Webmoney BL:
? | Тут люди пишут о вашей проблеме, советуют увеличить память, добавить своп. Однако это попытка "лечения симптомов". Чуть дольше подержать F5 и будет то же самое. Проблема очень старая. Во-первых, вам действительно стоит подумать о смене Apache на Nginx. Он легко с этим должен справляться. Во-вторых, проблема сводится к обнаружению слишком большого количества одинаковых запросов в короткий промежуток времени и их блокировке. Нет вредных запросов - нет нагрузки на вебсервер и базу - нет падений и зависаний.
 Сообщение от kochishka  Потом добавляем строку с ограничением для каждого своего домена в файле /home/username/conf/web/nginx.conf в начало секции location: limit_req zone=dyn burst=10; Это вот оно и есть. У апача дефолтных настроек для этого нету. Проблему решить можно несколькими способами. Для апача можно поискать и использовать какие-нибудь хитрые модули, наподобие таких. Можно использовать системный файрволл iptables для этого и построить велосипед, который будет это всё обнаруживать и блочить. Можно использовать специализированный и прекрасно работающий софт вкупе с настройкой вебсервера - fail2ban. Настроить можно как в связке с apache, так и в связке nginx. Разумеется, такая защита не будет срабатывать для пользователя который не занимается подобной ерундой:) К примеру, в настройках, которые приводит kochishka - это 10 запросов. Т.е на несколько милисекунд дольше, чем нужно для обычного рефреша, кнопку f5 пользователь удержит - эта штука сработает и вебсервер отфутболит остальные запросы от этого пользователя. Если настраивать в связке c fail2ban - то у него вообще сайт после этого перестанет открываться на какое-то время, заданное в конфигурации. Если он не оставит своих попыток, блок будет висеть, пока он не угомонится. |
| |