rate_limit_total для всего сервера

resident patriotlv на rambler.ru
Чт Янв 28 19:08:34 UTC 2021


Добрый день. Прошу помощь зала. Есть задача ограничить каждый виртуальный сервер
по скорости. Скажем есть сайт site1.com с заданной скоростью в 4096КиБ/с и
site2.com с 2048КиБ/с. Как сделать что бы одно соединение обрабатывалось на
максимальной скорости а остальные на пониженной в зависимости от количества
соединений. То бишь что бы $limit_rate выставлялся автоматически в зависимости от
уже имеющихся соединений при заданной общей скорости.Можно было бы решить это с
$connections_active но она для всего сервера. Или новой директивой
$limit_rate_total. На сколько сложно это реализовать или может есть какие то
варианты используя текущую реализацию?
server {
listen 80;
server_name site1.com;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log info;if ($connections_active = 1) {
set $limit_rate 4096k;
}
if ($connections_active = 2) {
set $limit_rate 2048k;
}
if ($connections_active = 3) {
set $limit_rate 1365k;
}
..
if ($connections_active = 100) {
set $limit_rate 40k;
}#$limit_rate_total 4096k;root /home/user/sites/site.com/www;
}
server {
listen 80;
server_name site2.com;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log info;if ($connections_active = 1) {
set $limit_rate 2048k;
}
if ($connections_active = 2) {
set $limit_rate 1024k;
}
if ($connections_active = 3) {
set $limit_rate 682k;
}
......
if ($connections_active = 100) {
set $limit_rate 20k;
}#$limit_rate_total 2048k;root /home/user/sites/site.com/www;
}
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20210128/642e0be0/attachment.htm>


Подробная информация о списке рассылки nginx-ru