---
title: 'Лимитирование скорости соединения с пользователями в Nginx | Zomro'
description: 'В данном материале разберемся с поэтапной конфигурацией ограничений в Nginx, применяя директивы limit_req_zone, limit_req, limit_rate и limit_rate_after.'
image: 'https://zomro.com/static/site/images/logo/logo-white.png?v=1790950739'
---

![opened image]()

  * [Zomro](https://zomro.com/rus/)
  * [Полезные статьи](https://zomro.com/rus/blog/articles/)
  * Лимитирование скорости соединения с пользователями в Nginx 



# Лимитирование скорости соединения с пользователями в Nginx

07-04-2025

Стабильность работы веб-серверов в наше время не зря является актуальным вопросом. Им приходится предоставлять свои услуги тысячам абонентов единовременно. Это приводит к перегрузке сети и серверных ресурсов, поэтому без инструмента лимитирования скорости подключения возможны критические перегрузки сервера отдельными юзерами и ботами, что создаст риск ресурсного сбоя.   
  


#### **Зачем необходимо устанавливать лимит на скорость соединения?**  


  1. **Защита от перегрузки**

     * Если у сервера нет ограничений, один или несколько пользователей могут исчерпать доступную пропускную способность, создавая проблемы для других клиентов.

  2. **Защита от DDoS-атак**

     * Ограничение количества запросов от одного IP-адреса снижает вероятность перегрузки сервера из-за массированных атак.

  3. **Балансировка ресурсов**

     * Каждый абонент будет иметь равноценный доступ к информации, и пользователи с более быстрым интернетом не будут иметь никаких преимуществ.

  4. **Снижение нагрузки на сервер**

     * Чем меньше запросов сервер обрабатывает одновременно, тем выше его стабильность и быстрее время отклика.

  5. **Экономия трафика и ресурсов**

     * Особенно важно для сайтов с ограниченным интернет-каналом или платным трафиком (например, во время применения CDN и облачных провайдеров).




#### **Случаи, когда рекомендуется устанавливать лимит скорости**  
  


Польза от скоростного ограничения будет в данных ситуациях:

  * **Сайты с загружаемыми файлами** (например, видео, архивы, программное обеспечение).

  * **Публичные API** – защита от спама и чрезмерных запросов.

  * **Сайты с динамическим контентом** – защита базы данных от перегрузки.

  * **Стриминговые сервисы** – распределение нагрузки и скорости между пользователями.




В данном материале разберемся с поэтапной конфигурацией ограничений в Nginx, применяя директивы 
    
    
    limit_req_zone, limit_req, limit_rate и limit_rate_after

.  
  


### **Этап 1. Инсталляция Nginx (в случае отсутствия)**

### Для того, чтобы начать процесс лимитирования скорости, нам сначала нужно проверить инсталлирован и функционирует ли Nginx.  


#### **Инсталляция**

### Инсталляция Nginx в подавляющем числе систем Ubuntu/Debian возможно через команду:
    
    
    sudo apt update && sudo apt install nginx -y

###   
  


![Лимитирование скорости соединения с пользователями в Nginx - 1](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcM2vzgNQ863wfKhvo92qxNaMkWUUJkyMiu4awIBULxMPZeB_33uu89QD5yUvF2S8VK3nO3H9xaIhzqL0bOXFOaDiGodty6ROB4ocwefXAnw-a7ePIcIsiXeKA2smum_Qw1iTIn?key=4_eKlP3fACed_7ZPhpvjBK2-)  
  


### Данный процесс для CentOS/RHEL возможен через применение следующей команды:
    
    
    sudo yum install epel-release -y
    
    
    sudo yum install nginx -y

### Arch Linux:
    
    
    sudo pacman -S nginx

### Завершив инсталляцию вам необходимо активировать Nginx и включить режим автозапуска:
    
    
    sudo systemctl start nginx
    
    
    sudo systemctl enable nginx

#### 

#### **Проверка работы**

### Удостовериться в работе сервера можно через применение команды:
    
    
    sudo systemctl status nginx
    

###   


![Лимитирование скорости соединения с пользователями в Nginx - 2](https://lh7-rt.googleusercontent.com/docsz/AD_4nXd0XQjCADmfS7laJEsq3i1vuv7igP73MkluICC2w0KTE3WUPL7Qfh_Pz_EzQa1vtBc_rn_013KmhzEO_lRpR2Qekd5aUx2Pz1EVTjWw278X0xfjcYpbogDxquy3XOTEIPqtzZYPEw?key=4_eKlP3fACed_7ZPhpvjBK2-)  
  


### Также можно открыть браузер и ввести 
    
    
    http://your-server-ip

### . Должна появиться стандартная страница Nginx.  


#### **Открытие порта в брандмауэре**

### Если у вас включен 
    
    
    UFW

### (Ubuntu/Debian), откройте порты 80 и 443:
    
    
    sudo ufw allow 'Nginx Full'
    
    
    sudo ufw enable

###   
  


![Лимитирование скорости соединения с пользователями в Nginx - 3](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdbk-fy6jeAcy3WPmDcZsKDoX4WGr8YHMi7nH4ya5GiaH4kauGE03tutCe3KHgrBEh4m54EuxYIYy9tiwHfkd0grIh01T9kY08112P-B60uK-08MTuPk2RnM6ayrMu0A5FBXX2-HA?key=4_eKlP3fACed_7ZPhpvjBK2-)  
  


### Для 
    
    
    firewalld

### (CentOS/RHEL):
    
    
    sudo firewall-cmd --add-service=http --permanent
    
    
    sudo firewall-cmd --add-service=https --permanent
    
    
    sudo firewall-cmd --reload

### 

### Теперь Nginx готов к работе, и можно приступать к настройке ограничений.  
  


### **Этап 2. Конфигурация модуля скоростного ограничения**

### Nginx имеет встроенный механизм для лимитирования числа запросов одним пользователем обратившись к модулю 
    
    
    sudo firewall-cmd --reload

### .

#### **Конфигурация limit_req_zone и limit_req**

### Допишите в блок
    
    
    http

### , находящийся в документе 
    
    
    /etc/nginx/nginx.conf

### , данную строку:
    
    
    http {

### 
    
    
       limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s

### ;
    
    
    }

###   
  


![Лимитирование скорости соединения с пользователями в Nginx - 4](https://lh7-rt.googleusercontent.com/docsz/AD_4nXe2_sqPPb9WHrPSBwUIjImZorYDWVWPih7QidwC8duEznElChQf5ankesMDX_0L84jH6udj91OBNTG8S-ju24IdOl-N-PQmj2eQ2VOrE0ZZUDGm65m0IqQjDhqwkVdDjgEephWrag?key=4_eKlP3fACed_7ZPhpvjBK2-)  
  


### С помощью неё будет сформирована 10-мегабайтовая ячейка памяти 
    
    
    one

### , в которой хранится информация о лимите допускающем не более **одного запроса в секунду**. Данное ограничение будет действовать на все уникальные IP-адреса.

### Теперь применим лимит к определенному location:
    
    
    server {

### 
    
    
     listen 80
    
    
        server_name example.com;

### 
    
    
      location /api/ {
    
    
            limit_req zone=one burst=5 nodelay;
    
    
        }
    
    
    }

###   
  


![Лимитирование скорости соединения с пользователями в Nginx - 5](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfEyHNwFFSfpljPgxn9kQodyOEpS_mXb8uubUsf2YQlI35jdnm9i5V1hTxgvey1edAzlHWmRQyL2ZEkhqfO4SKDY50vaoKqkY7Tf4I5LJXA0LftRwVHkU9898CnpCbQMhv7oaPS0w?key=4_eKlP3fACed_7ZPhpvjBK2-)

  * 
        burst=5 

### предоставит еще 5 запросов в случае превышения ограничений.

  * 
        nodelay 

### указывает на отклонение с ошибкой 503 всех запросов, превысивших лимит, вместо того, чтобы добавить их к очереди.  
  





#### **Лимитирование запросов для конкретных документов**

### Можно установить ограничение скорости повторения обращений к документам статического формат (например, 
    
    
    .php

### , 
    
    
    .jpg

### ):
    
    
    location ~* \.(php|jpg|png)$ {
    
    
        limit_req zone=one burst=3 nodelay;
    
    
    }

### После проведенных корректировок сделайте рестарт Nginx:
    
    
    sudo systemctl restart nginx

###   
  


![Лимитирование скорости соединения с пользователями в Nginx - 6](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdKVn1MgAHKLVROlHEAyofRbfYn27coAK8KvsNlPvWM00SekDpeaaeJjuT9Cv6gGrx3BzMuCI-wpCwTnL5vAWU62M7JRcuBE2o6rrpqWAuGx3r68jCqRRZ8SJLzP-bH3g7kGYDQ8w?key=4_eKlP3fACed_7ZPhpvjBK2-)  
  


### **Этап 3. Ограничение скорости загрузки**

### Кроме ограничения частоты запросов, можно ограничить **скорость загрузки** данных клиентами.

#### **Использование limit_rate**

### В файле
    
    
     /etc/nginx/nginx.conf

### или конфигурации сервера добавьте:
    
    
    server {

### 
    
    
       listen 80;

### 
    
    
      server_name example.com;
    
    
        location /downloads/ {

### 
    
    
           limit_rate 100k;
    
    
        }
    
    
    }

###   
  


![Лимитирование скорости соединения с пользователями в Nginx - 7](https://lh7-rt.googleusercontent.com/docsz/AD_4nXe1f36LBbFBKJ3Ws06QBi53YXR8ybhjXTHSSKcreHyO8GuyowyMppH3yM9MsWzE08hGeGI_PMCBSKBdX9FCk8EOK0JfuA83QOR56t4faMLjD5CtwL1Ti0z6OJQP-NgG75_8Rr3a7w?key=4_eKlP3fACed_7ZPhpvjBK2-)  
  


### Здесь 
    
    
    100k 

### означает, что пользователи могут скачивать файлы со скоростью **100 КБ/с**.  
  


#### **Использование limit_rate_after**

### Если нужно ограничить скорость **после** скачивания определенного объема данных:
    
    
    location /videos/ {
    
    
        limit_rate_after 1m;  # 1 MB без ограничения
    
    
        limit_rate 200k;      # После 1 MB — ограничение 200 КБ/с
    
    
    }

###   
  


![Лимитирование скорости соединения с пользователями в Nginx - 8](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfjmabm5yMPQ7iI6lUPV8Lnk3IeV6dpHmDx4uBwuwySi8hh0FZS1nKG9BQHit9GielllxpvCy2fpTb1LVQZKrjPTPKIVJ4JrZOiYU7nTU69Oj7K9Yxd5fkACTh9kBxHgdG8kGDpVw?key=4_eKlP3fACed_7ZPhpvjBK2-)  
  


### Таким образом, первые 1 MB загружаются на максимальной скорости, а затем включается ограничение в **200 КБ/с**.  
  


#### **Ограничение скорости для всех пользователей**

### Если необходимо ограничить скорость загрузки **на уровне всего сервера** , добавьте это в 
    
    
    http

### -блок:
    
    
    http {
    
    
        limit_rate 150k;
    
    
    }

### Перезапускаем Nginx после изменений:
    
    
    sudo systemctl restart nginx

###   
  


### **Этап 4. Проверка и оптимизация**

### По окончании конфигурации лимитов не забудьте проверить, что всё работает корректно.  


#### **Контроль лимитов**

### Чтобы протестировать 
    
    
    limit_req

### , используйте команду 
    
    
    ab

### (Apache Benchmark):
    
    
    ab -n 10 -c 1 http://example.com/api/

### Если запросов больше, чем заданный лимит, часть из них будет отклонена с ошибкой 
    
    
    503 Service Unavailable

### .  


#### **Проверка ограничения скорости загрузки**

### Чтобы протестировать
    
    
    limit_rate

### , можно скачать файл с сервера с помощью 
    
    
    wget

### :
    
    
    wget --limit-rate=150k http://example.com/downloads/file.zip

### Если тестирование показывает соответствие установленным лимитам – вы всё сделали правильно.  


#### **Отслеживание Nginx-логов**

### Журналы предоставят по необходимости данные про отклоненные запросы по причине превышения лимитов.
    
    
    sudo tail -f /var/log/nginx/access.log

### Чтобы обнаружить ошибки:
    
    
    sudo tail -f /var/log/nginx/error.log

![Лимитирование скорости соединения с пользователями в Nginx - 9](https://lh7-rt.googleusercontent.com/docsz/AD_4nXezBwEahC06vwAEauRNRLjSuD623MTUKeSRR_yXROU4i-cDV7smbIm94IFSnjkYcXxrwyirFNB_U0s-59QhZHNDdF7019hA_76xiNfdRaeBx-aAdNxzyG0Ta6ZBbrhXFjdKRKgHaQ?key=4_eKlP3fACed_7ZPhpvjBK2-)  
  


#### **Улучшения и дополнительная конфигурация**

  * ### В случаях когда сервер работает с большим числом пользователей вам следует увеличить размер 
        
        
        limit_req_zone

### .

  * ### Сконфигурируйте 
        
        
        burst

### чтобы балансировать отказы и обращения.

  * ### Сочетайте 
        
        
        limit_rate

### и
        
        
        limit_req 

### чтобы администрирование нагрузки сделать точнее.  
  





### **Заключение**

Ограничение скорости подключения в Nginx – это один из ключевых инструментов для обеспечения стабильности работы веб-сервера, защиты от перегрузок и распределения ресурсов между пользователями. Если сервер обрабатывает большое количество запросов, настройка ограничений позволяет избежать ситуаций, когда один или несколько клиентов занимают всю пропускную способность, улучшая доступность сайта для остальных.  


#### **Ключевые выводы:**

  1. **Лимит обращений (**
         
         
         limit_req

**)** – уменьшает серверную нагрузку, чем исключает перегрузку при помощи ограничений частоты запросов с одного IP.

  2. **Ограничение скорости загрузки (**
         
         
         limit_rate

**)** – помогает регулировать использование канала связи, что особенно важно при передаче крупных файлов, видео или аудиоконтента.

  3. **Универсальность конфигурации** – есть возможность для установки различных лимитов для файлов разного формата, конкретных страниц и юзеров.

  4. **Мониторинг и логирование** – позволяют вовремя выявлять потенциальные проблемы и настраивать ограничения под реальные нагрузки.

  5. **Улучшение конфигурации** – любая платформа отличается индивидуальностью, поэтому следует анализировать и поправлять параметры опираясь на тип нагрузки.




####   
  
**Дополнительные советы повышения работоспособности**

Помимо настройки ограничений в Nginx, можно использовать дополнительные методы для повышения производительности и защиты сервера:

  1. **Кэш-конфигурация**

     * Уменьшить количество запросов к PHP-обработке и датабазе, а также серверную нагрузку можно через применение кэша FastCGI, Proxy или Redis.

  2. **Распределение нагрузки**

     * Если у вас высоконагруженный сайт, можно использовать Nginx как балансировщик нагрузки (Load Balancer), распределяя трафик между несколькими серверами.

  3. **Защита от DDoS-атак**

     * Обезопасить веб-сайт от перегрузок и бот-атак помогут в Nginx: активация fail2ban, применение Cloudflare, конфигурация межсетевого экрана (iptables) и rate-limiting.

  4. **Применение HTTP/2 и сжатия**

     * Включение HTTP/2 и сжатия (gzip, Brotli) помогает ускорить загрузку страниц, снижая объем передаваемых данных.

  5. **Улучшение настроек Nginx**

     * Для более качественной работы сервера следует повысить значения 
           
           
           worker_processes,
           
           
           worker_connections, keepalive_timeout

и других параметров.

  6. **Регулярный анализ логов**

     * Журналы доступа (
           
           
           access.log

), а также журналы ошибок (
           
           
           error.log

) позволяют обнаружить подозрительную активность, возможные уязвимости и узкие зоны в работоспособности сервера.

  7. **Мониторинг системы**

     * Использование инструментов типа Grafana, Prometheus или Netdata позволит отслеживать загрузку процессора, использование памяти и сетевую активность в реальном времени.




Корректная конфигурация лимитов скорости в Nginx создает гармонию между эффективностью работы, защитой и удобством для пользователей. Эти ограничения помогают избежать чрезмерной нагрузки на сервер, минимизировать вероятность атак, а также повысить эффективность распределения ресурсов среди пользователей.

Похожие статьи

[Знакомство с ISPmanager 6 Lite, Pro, Host](https://zomro.com/rus/blog/articles/154-znakomstvo-s-ispmanager-6-lite-pro-host) [Фрилансер или компания](https://zomro.com/rus/blog/articles/59-frilanser-ili-kompaniya) [Почему стоит выбрать виртуальный хостинг](https://zomro.com/rus/blog/articles/129-pochemu-stoit-vybrat-virtualnyj-hosting) [Мифы о создании сайтов](https://zomro.com/rus/blog/articles/38-mify-o-sozdanii-saytov) [Правильный выбор хостинга. На что ориентироваться?](https://zomro.com/rus/blog/articles/60-pravilnyy-vybor-hostinga-na-chto-orientirovatsya)

[ Сервер для Forex от €7.95/мес ](/rus/server-for-forex)
