Apache 限制每月用户使用特定虚拟主机

Apache 限制每月用户使用特定虚拟主机

Apache 中是否有办法限制某个月内可以查看网站的用户数量?我需要针对单个虚拟主机执行此操作。

大致如下:

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

Apache 中有什么可以做到这一点(或 nginx)吗?

谢谢!

答案1

不,但你可以配置访问日志,转到一个进行计数然后关闭网站的程序。你必须让它能够适应 Apache 重启。

答案2

如果您在 Apache 中使用 PHP 之类的东西,那么这很简单。您可以使用 cookie(最佳方式)手动实现每个用户的计数,或者如果他们禁用了 cookie,可以使用一些巧妙的方法。这类东西属于 PHP 脚本。

似乎对于像您这样的设置,您可能有一个用于身份验证的用户/密码哈希,因此当他们登录时,请记录它。每次他们开始新会话时,都记录它。如果他们达到 5000 个会话,则返回 401 错误或其他说明他们已超出每月分配的浏览量的信息。

如果这确实是基于每个用户,那么服务器端脚本将是最有意义的。您甚至不需要数据库,一个简单的文本文件就可以解决问题。

我很确定 PHP 脚本可以访问它正在被访问的主机(只需查看 URL)。

相关内容