2 votes

L' Apache limite les utilisateurs par mois à certains vhost

Y a-t-il un moyen dans Apache de limiter le nombre d'utilisateurs pouvant consulter un site au cours d'un mois donné ? J'aurais besoin de le faire pour des hôtes virtuels individuels.

Quelque chose du genre :

    ServerName website.com
    DocumentRoot "/var/www/website.com/public"
    **LIMITATION_UTILISATEUR_MENSUELLE** = 5000

Est-ce qu'Apache propose quelque chose comme ça (ou nginx) ?

Merci !

1voto

songsong Points 173

Non, mais vous pourriez configurer le journal d'accès pour aller vers un programme qui fait le décompte et ensuite désactive un site. Vous devriez le rendre résilient aux redémarrages d'Apache.

0voto

beatgammit Points 329

Cela est assez trivial si vous utilisez quelque chose comme PHP avec Apache. Vous pourriez implémenter le comptage manuellement sur une base par utilisateur en utilisant des cookies (de manière optimale), ou si les cookies sont désactivés, utilisez quelque chose d'astucieux. Ce genre de choses appartient à un script PHP.

Il semble qu'avec une configuration comme la vôtre, vous avez probablement un hash utilisateur/mot de passe pour l'authentification, donc quand ils se connectent, enregistrez-le. Chaque fois qu'ils commencent une nouvelle session, enregistrez-la. S'ils atteignent 5000 sessions, renvoyez une erreur 401 ou quelque chose expliquant qu'ils ont dépassé leur allocation mensuelle de vues.

Si cela est vraiment sur une base par utilisateur, un script côté serveur aurait le plus de sens. Vous n'avez même pas besoin d'avoir une base de données, un simple fichier texte fera l'affaire.

Je suis assez sûr qu'un script PHP peut accéder à l'hôte sur lequel il est accédé (il suffit de regarder l'URL).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X