Apache limita usuários por mês para determinados vhost

2

Existe uma maneira no apache de limitar a quantidade de usuários que podem visualizar um site em um determinado mês? Eu precisaria fazer isso para vhosts individuais.

Algo ao longo das linhas de:

<VirtualHost *:80>
    ServerName website.com
    DocumentRoot "/var/www/website.com/public"
    **MONTHLY_USER_LIMIT** = 5000
</VirtualHost>

Existe alguma coisa no Apache que faça isso (ou nginx)?

Obrigado!

    
por kron 04.04.2011 / 19:02

2 respostas

1

Não, mas você pode configurar o log de acesso para ir a um programa que faz a contagem e, em seguida, desativa um site. Você teria que torná-lo resiliente ao reinício do apache.

    
por 04.04.2011 / 20:46
0

Isso é bastante trivial se você estiver usando algo como o PHP com o Apache. Você poderia implementar a contagem manualmente por usuário usando cookies (de maneira ideal) ou, se eles tiverem cookies desativados, usar algo inteligente. Este tipo de material pertence a um script PHP.

Parece que, com uma configuração como a sua, você provavelmente tem um hash de usuário / senha para autenticação, portanto, quando fizerem login, registre-o. Toda vez que eles iniciarem uma nova sessão, registre-a. Se eles atingirem 5000 sessões, retornem um erro 401 ou algo explicando que eles excederam a quantidade de visualizações por mês.

Se isso realmente ocorrer por usuário, um script do lado do servidor faria mais sentido. Você nem precisa ter um banco de dados, um arquivo de texto simples fará o truque.

Tenho certeza de que um script PHP pode acessar em qual host ele está sendo acessado (basta olhar para a URL).

    
por 05.04.2011 / 19:05