Назад | Перейти на главную страницу

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

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

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

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

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

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

2: передать этот конкретный контент через прокси-проход в lighttpd и установить серверный дроссель в 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-трафика)