В интернете много информации по поводу ограничения скорости отдачи, но
1. Модуль
nginx_limit_speed_module использовать не хочу, потому что не хочется каждый раз пересобирать nginx для обновления.
2. Использовать
limit_rate либо
set $limit_rate получается только в рамках директивы server, либо http. В общем получается ограничить скорость либо на весь сервер, либо на весь домен.
3. Согласно документации,
set $limit_rate должна ограничивать не в рамках 1 запроса, а в рамках всего клиента. В любом случае так же не работает.
Мне необходимо его использовать в директиве location, например тут
location /soft/, как указано ниже... но эта зараза не хочет работать, почему? Что я не правильно сделал?
Версия NGINX 1.16.1
Пробовал и просто
limit_rate и
set $limit_rate
server {
listen 80;
server_name www.ustim.ru ustim.ru;
charset UTF-8;
root /var/www/ustim.ru/htdocs/;
include /etc/nginx/templates/php-fpm7.3.conf;
index index.html index.htm index.php;
location /app.php {
try_files $uri $uri/ /app.php?$query_string;
}
location /install/app.php {
try_files $uri $uri/ /install/app.php?$query_string;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
#Доступ к папке /soft (без пароля)
location /soft/ {
alias /mnt/fs-soft/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
dav_access user:rw group:rw all:rw;
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
set $limit_rate 200K;
}
access_log /var/log/nginx/ustim.ru_access.log;
error_log /var/log/nginx/ustim.ru_error.log;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/ustim.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/ustim.ru/privkey.pem; # managed by Certbot
ssl_session_cache shared:le_nginx_SSL:1m; # managed by Certbot
ssl_session_timeout 1440m; # managed by Certbot
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # managed by Certbot
ssl_prefer_server_ciphers on; # managed by Certbot
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AE$
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
}