nginx - Begrenzung der Bandbreitennutzung pro Serverblock

nginx - Begrenzung der Bandbreitennutzung pro Serverblock

In Apache haben wir einige großartige Lösungen zur Begrenzung der Bandbreitennutzung pro virtuellem Host, wie z. B. mod_bandwidth. Seit ich jedoch nginx verwende, konnte ich keine Möglichkeit finden, die Bandbreitennutzung für jeden Serverblock zu begrenzen und zu überwachen.

Ich würde gerne einige Vorschläge zur Überwachung und Begrenzung der Bandbreitennutzung pro Serverblock auf Nginx hören.

Antwort1

Sie können limit_ratedie Bandbreite begrenzen. Bei mir funktioniert das auch mit der Community-Version von nginx.

Beispielsweise kann die Bandbreite für den gesamten Serverblock wie folgt auf 1000 Bytes pro Sekunde begrenzt werden:

server {
    listen 80;

    location / {
        limit_rate 1k;
    }
}

Antwort2

Nginx Plus verfügt über integrierte Optionen zur Drosselung der Bandbreite pro Host.

Wenn Sie dies über die Community-Version von Nginx erreichen möchten, haben Sie zwei Möglichkeiten: (Da nur die Bandbreitenbündelung pro IP enthalten ist.)

1: Begrenzen Sie die Bandbreite des gesamten Nginx-Prozesses mithilfe externer Tools oder IP-Tabellen.

2: Diesen spezifischen Inhalt per Proxy-Pass an lighttpd ausliefern und eine Server-Drosselung in lighttpd festlegen

server.kbytes-per-second = 6250

Wenn downloads.domain.net das wäre, was wir drosseln möchten, hätte Lighthttpd die folgende Konfiguration:

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

Natürlich können Sie auch bestimmte Dateien, Ordner usw. als Proxy verwenden.

Letztendlich: Dies und die Drosselung des gesamten Datenverkehrs über Port 80 (und 443) durch IP-Tabelle zu verwenden, ist die ultimative Lösung, wenn Sie eine bestimmte Bandbreite nicht überschreiten möchten. (Beispielsweise können VoIP-Dienste eine feste Begrenzung des HTTP-Datenverkehrs erfordern.)

verwandte Informationen