Apache2: Bandbreite und gleichzeitige Verbindungen pro User beschränken

.tails

New member
Nabend zusammen.
Ich hab da ein kleines Problem, ich möchte, wie im Titel schon zu erkennen, die Download-geschwindigkeit und die gleichzeitigen Verbindungen zu meiner Website begrenzen.
So weit ließe sich das ja noch ziemlich leicht mit mod_cband lösen. Nur möchte ich diese Begrenzung nicht für alle User haben. Denkt hierbei einfach an einen Art File Hoster, wo Premium User andere Optionen haben.
Mit mod_cband kann man zwar einzelne User erstellen, und diesen andere Einstellungen geben, aber man muss dafür immer die VHost Konfiguration ändern, und ich suche etwas womit ich diese Funktionalität dynamisch hin bekomme, ohne den Server zu reloaden.
Die Frage ist jetzt nicht ob das möglich ist, das weiß man ja, sonder wie man das am besten macht. Die einzige Idee die ich bisher dazu hatte waren 2 Sub-Domains, bei der nur "premium.url.de" keine Limits hat. Nur wäre dies natürlich "wenig" sicher.
Hoffe jemand kann mir weiterhelfen.

Gruß,
tails
 

metax.

New member
Naja, du könntest 2 Apache-Servler laufen lassen, von denen nur einer das Limit hat. Den Unlimitierten kannst du ja dann nur für registrierte Premium-User freischalten.
Zu der Sache mit den Usern: Apache kann nicht nur die User-Informationen von diesen statische Passwort-Files beziehen; mit den richtigen Apache-Modulen kannst du die Benutzer auch aus anderen Quellen (z.B. aus einer MySQL-Datenbank oder über PAM) beziehen. Über eine MySQL-Datenbank könntest du z.B. neue Premium-User sofort freischalten, ohne den Server reloaden zu müssen.

mfg, metax.
 

bitmuncher

Moderator
Ein zweiter Apache ist vermutlich gar nicht notwendig. Ein zweites VHost, das den Einschränkungen nicht unterliegt, dürfte vermutlich vollkommen ausreichen. Man müsste es nur via Passwort schützen und einen Download eines Premium-Users auf das zweite VHost umleiten und in die Webapp eine Authentifizierung via Session-Cookie einbauen.

@metax.: Im übrigen ist ein Reload für neue User nicht notwendig, wenn die Authentifizierung über die htaccess-Datei gemacht wird. Die darin definierte Passwort-Datei wird bei jedem Login neu eingelesen, genauso wie die htaccess-Datei bei jedem Request verarbeitet wird. Lediglich wenn die Passwort-Datei direkt im VHost definiert ist, muss man bei jedem neuen User einen Reload machen. Die VHost-Daten werden redundant im Speicher gehalten.
 

.tails

New member
Hab das User System bei cband ein bisschen missverstanden gestern Abend. Das hat sich dann schon mal erledigt.

Ein zweiter VHost und eine Umleitung der Premium User dort hin war ja auch mein Gedanke, nur theoretisch kann natürlich jeder die URL herausfinden, und durch rumprobieren dann früher oder später auch die URLs zu den Files raus kriegen.
Aber ist wohl die naheliegendste Lösung.
Danke erst mal soweit.
 

easteregg

Member of Honour
das können die ja rausbekommen, aber da machste wie gesagt nen auth system davor, wo die premium user sich einloggen und eben dann per cookie authentifiziert werden.
das sollte recht schmerzlos zu realisieren sein.
 

bitmuncher

Moderator
Ein zweiter VHost und eine Umleitung der Premium User dort hin war ja auch mein Gedanke, nur theoretisch kann natürlich jeder die URL herausfinden, und durch rumprobieren dann früher oder später auch die URLs zu den Files raus kriegen.
Wenn die Files prinzipiell nur durch die Webapp ausgeliefert werden und ihr direkter Pfad wie bei diversen Filehostern nicht ermittelbar ist (z.B. weil sie aus einer DB kommen), reicht es aus, wenn die Session-ID der User in einer DB mit dem User verknüpft ist, so dass man anhand der Session-ID ermitteln kann ob es sich um einen Premium-User handelt. Nur wenn die Session-ID korrekt ist, wird halt die Datei über das unlimitierte VHost rausgegeben.
 
Oben