Задать вопрос

Как настроить нагрузоспособность Nginx из расчета процессоров для стабильной работы?

Что в Nginx отвечает за фильтрацию нагрузки, которая не позволит перегружать процессор и блокировать спам, если какой-то из айпи делает более определенного количества запросов в минуту?
Как рассчитать максимально возможную нагрузку на сервер относительно процессора и оперативной памяти?
  • Вопрос задан
  • 4158 просмотров
Подписаться 9 Простой Комментировать
Решения вопроса 2
@Zerg89
какой-то из айпи, не правильное понятие для веб сервера с учётом что большая масса пользователей сидит за натом, тоесть у них 1 ip из пула провайдера

По поводу лимита смотрите limit_request

Максимальная нагрузка определяется империческим путем так как неизвестно что на бекенде и как оно реагирует на разные запросы
Ответ написан
Комментировать
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
Как настроить нагрузоспособность Nginx из расчета процессоров для стабильной работы?

Т.к. четкого ТЗ не указано, то выдумаю свой конфиг, с 4 ядрами и 8 гигами оперативы, тогда следующие действия:

Передадим параметры железа nginx-у, nginx.conf:
worker_processes  4; # cores
events {
    worker_connections  1024; # 1024 * 4 ram = 4096 (max all rps)
}


Настроим ограничения так, чтобы каждый ip мог делать не более 10 rpm (в минуту), nginx.conf:
http {
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/m;

    server {
        location / {
            limit_req zone=mylimit burst=20 nodelay; # we put no more than 20 requests in the queue over the limit (anti DDoS)
        }
    }
}

Эти настройки помогут контролировать общую нагрузку на сервер и предотвратят его перегрузку за счет ограничения количества обрабатываемых запросов как в целом (через worker_connections), так и на уровне отдельных IP-адресов (через limit_req_zone и limit_req). Это эффективный способ защиты от спама и DDoS, а также обеспечивает равномерное распределение ресурсов сервера между всеми пользователями.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы