It-e.RU
Цифровой двигатель вашего бизнеса.

Ограничение использования канала

Ограничение использования канала

Покупая недорогой хостинг для сайтов с небольшим трафиком, вы рискуете стать жертвой поисковых роботов или чего-то подобного, то есть ресурс не выдержит аномальной пиковой нагрузки. Чтобы это недопустить, я опишу несколько методик.


Ограничиваем по количеству обращений при помощи iptables:
# create a new chain for rate limiting
-N LIMITED

# rate limit individual ips to prevent stupidity
-I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
-I INPUT -p tcp --dport 443 -m state --state NEW -m recent --set
-I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 5 -j LIMITED
-I INPUT -p tcp --dport 443 -m state --state NEW -m recent --update --seconds 10 --hitcount 5 -j LIMITED

# log rejected ips
-A LIMITED -p tcp -m limit --limit 5/min -j LOG --log-prefix "Rejected TCP: " --log-level 7
-A LIMITED -j REJECT
Способ плохо тем, что адрес пользователя просто заблокирует и он будет видеть, что ресурс просто пропал. Но это довольно действенно ;)

Ограничиваем по количеству обращений при помощи nginx:
        limit_req_zone $binary_remote_addr zone=26req:10m rate=36r/s; 
        limit_conn_zone $binary_remote_addr zone=perip:10m;
        limit_conn_zone $server_name zone=perserver:10m;
        limit_req_status 429;
        limit_req_log_level warn;
server {
           ...
        limit_req zone=26req  burst=54;
        limit_conn addr 1; # обрабатывать не более одно соединения с одного ип
        limit_conn perip 4; # обрабатывать не более одно соединения с одного ип
        limit_conn perserver 80; # не более 80 подключений на сервер
           ...
  }
}

Пожалуйста, уважайте труд автора, при копировании материалов сохраняйте ссылку на источник!

Комментарии (0)







Разрешённые теги: <b><i><br>Добавить новый комментарий: