Управление пропускной способностью крайне важно для серверов, особенно когда несколько клиентов одновременно загружают большие файлы. Контролируя скорость или дросселируя скорость загрузки, вы можете обеспечить сбалансированное и эффективное распределение ресурсов, гарантируя всем пользователям оптимальную производительность.
Apache, один из самых популярных веб-серверов, предоставляет ряд модулей и конфигураций, позволяющих веб-администраторам контролировать и дросселировать скорость загрузки. Одним из часто используемых модулей является mod_ratelimit. При включении и правильной настройке этот модуль позволяет установить ограничение на скорость загрузки для клиентов.
Хотя многие дистрибутивы поставляются с mod_ratelimit, вам может потребоваться включить или настроить его в соответствии с требованиями вашего сервера. Ниже описаны шаги по включению и настройке дросселирования скорости загрузки на сервере Apache.
Шаги по снижению скорости загрузки на Apache
Запустите терминал.
Включите модуль ratelimit для Apache.
1 | sudo a2enmod ratelimit |
В дистрибутиве с поддержкой a2enmod можно просто выполнить приведенную выше команду без необходимости вручную включать необходимые модули.
Опции | Debian, Ubuntu | openSUSE и SLES | Fedora Core, CentOS, RHEL | macOS | homebrew | xampp |
Поддержка a2enmod | Да | Да | Нет | Нет | Нет | Нет |
Модули для установки | Отсутствует | |||||
Имя модуля | н/а | ratelimit | ||||
Директива Loadmodule | н/а | LoadModule ratelimit_module <module_locations>/mod_ratelimit.so |
Откройте файл конфигурации Apache или файл виртуального хоста с помощью текстового редактора.
1 | sudo nano /etc/apache2/sites-available/00-default.conf |
Добавьте опции mod_ratelimit в определенные директивы Location, Directory или VirtualHost, где вы хотите ограничить пропускную способность.
1 2 3 4 5 6 | <VirtualHost *:80> # .... SetOutputFilter RATE_LIMIT SetEnv rate-limit 512 SetEnv rate-initial-burst 1024 </VirtualHost> |
Приведенная выше конфигурация ограничивает скорость загрузки до 512 КБ/с после начальной серии в 1 МБ. Отрегулируйте значения по мере необходимости.
Сохраните файл и закройте текстовый редактор.
Перезапустите Apache, чтобы применить изменения.
1 | sudo systemctl restart apache2 |
1 | sudo systemctl restart httpd |
Загрузите файл с сервера, чтобы проверить, правильно ли ограничена полоса пропускания.
1 | curl --output filename.tmp www.example.com/filename.ext |