nginx - limitando o uso de largura de banda por bloco de servidor

1

No Apache, temos algumas ótimas soluções para limitar o uso de largura de banda por vhost, como mod_bandwidth. No entanto, desde que comecei a usar o nginx, não consegui encontrar uma maneira de limitar e monitorar o uso da largura de banda para cada bloco de servidor.

Eu gostaria de ouvir algumas sugestões sobre monitoramento e limitação do uso da largura de banda por bloco de servidor no nginx.

    
por bazaglia 13.05.2014 / 06:14

1 resposta

1

O Nginx Plus incorporou opções para limitar a largura de banda por host.

Se você quiser alcançá-lo sobre a versão da comunidade do nginx, você tem duas opções: (Como é apenas uma extensão por IP pooling de largura de banda.)

1: Limite a largura de banda de todo o processo nginx, usando ferramentas externas ou tabelas ip.

2: Sirva esse conteúdo específico via proxy-pass para lighttpd e defina um acelerador de servidor no lighttpd

server.kbytes-per-second = 6250

Se downloads.domain.net seria a coisa que queremos estrangular, Lighthttpd teria a seguinte configuração:

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;
    }
}

É claro que você também pode fazer proxy por arquivos, pastas, etc. específicos.

Por fim: Usando isso e também a aceleração da tabela ip todo o tráfego da porta 80 (e 443) é a solução definitiva caso você não queira passar por um ponto específico de largura de banda. (Por exemplo, os serviços de VoIP podem exigir um limite rígido no tráfego http)

    
por 26.10.2014 / 11:55