Wie können wir die Nginx-Upload- / Download-Geschwindigkeit pro Benutzer dynamisch einschränken?

8

Es ist möglich, die Geschwindigkeit mithilfe des Ratenlimits an einem bestimmten Ort einzuschränken.

Wie können wir es jedoch dynamisch machen?

Angenommen, Sie haben im Vergleich zu nicht bezahlten Benutzern bezahlt und möchten bezahlten Benutzern eine höhere Bandbreite bieten.

Wir müssten die Datenbank dynamisch einchecken und eine bestimmte Geschwindigkeit für diese bestimmte Benutzergruppe zulassen.

Haben Sie ein Nginx-Modul im Sinn?

Jonathan
quelle

Antworten:

4

Ja, Sie können das Preislimit für einen bestimmten Standort festlegen.

location /something/ { 
    set $limit_rate  4k; 
}

Sie können die limite_rate auch mit Anweisungen wie if umgeben, um die Raten dynamisch zu steuern. Weitere Informationen zur Limite-Rate finden Sie unter diesem Link: http://wiki.nginx.org/NginxHttpCoreModule#limit_rate

Es gibt ein weiteres Modul, auf das Sie achten sollten: http://wiki.nginx.org/NginxHttpLimitZoneModule

Mit diesem Modul können Sie Grenzwerte für die Anzahl der Verbindungen festlegen. Selbst wenn Sie ein unteres Limit festlegen und nur 10 Verbindungen herstellen können, ist Ihr Limit ziemlich bedeutungslos.

Ich schlage vor, dass private und öffentliche Benutzer unterschiedliche Links erhalten, damit nginx leicht zwischen den Benutzertypen unterscheiden und die Sicherheit in Ihrer Anwendungsschicht überprüfen kann.

Mürrisch
quelle