nginx - ограничение использования полосы пропускания на блок сервера

nginx - ограничение использования полосы пропускания на блок сервера

В Apache у нас есть несколько замечательных решений для ограничения использования полосы пропускания на каждый vhost, например mod_bandwidth. Однако с тех пор, как я начал использовать nginx, я не смог найти способ ограничения и мониторинга использования полосы пропускания для каждого блока сервера.

Я хотел бы услышать несколько предложений по мониторингу и ограничению использования полосы пропускания на блок сервера в nginx.

решение1

Вы можете использовать limit_rateдля ограничения пропускной способности. У меня это также работает на версии сообщества nginx.

Например, пропускная способность может быть ограничена 1000 байт в секунду для всего серверного блока следующим образом:

server {
    listen 80;

    location / {
        limit_rate 1k;
    }
}

решение2

В Nginx Plus имеются встроенные опции для ограничения пропускной способности для каждого хоста.

Если вы хотите добиться этого с помощью общедоступной версии nginx, у вас есть 2 варианта: (поскольку она включает только пул пропускной способности для каждого IP-адреса.)

1: Ограничьте пропускную способность всего процесса nginx, используя внешние инструменты или таблицы IP.

2: Обслуживайте этот конкретный контент через proxy-pass в lighttpd и установите server-throttle в lighttpd

server.kbytes-per-second = 6250

Если бы мы хотели ограничить трафик downloads.domain.net, то Lighthttpd имел бы следующую конфигурацию:

server.port = 81
server.document-root = "/path/to/downloads"
index-file.names = ( )

Nginx:

server {
    listen 80;
    server_name downloads.domain.net;

    location / {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://127.0.0.1:81;
    }
}

Конечно, вы также можете использовать прокси-сервер для определенных файлов, папок и т. д.

В конечном итоге: использование этого, а также IP-таблицы, регулирующей весь трафик порта 80 (и 443), является оптимальным решением в случае, если вы не хотите выходить за пределы определенной точки полосы пропускания. (Например, службы VoIP могут требовать жесткого ограничения на http-трафик).

Связанный контент