经常看到某某主页提供商对虚拟主机的限制为同时在线20人或者流量3G,使人不得不想想它们是怎么做的,请知道的高手指点一二。
我看过限制人数的帖子,但那个限制是针对访问整个APACHE服务器的总进程,可以理解成一个人一个进程吧?那么对某个虚拟主机空间该怎么限制呢?
---------------------------------------------------------------
大致步骤:
在httpd.conf设置日志:accessctrl.log
LogFormat "%{%Y%m%d%H%M%S}t,%b,"%{Referer}i","%h"" acce
CustomLog logs/accessctrl.log acce
将日志读入mysql数据库.表名为apachectrl.
设四个字段:time datetime,size int,url varchar(200),conn varchar(30);
----------
delete from apachectrl;
LOAD DATA INFILE '/var/log/httpd/accessctrl.log' INTO TABLE table_name
FIELDS TERMINATED BY ',';
----------
统计一个月内size的和即为当月流量.某一段时间内(比如20分钟)的不同的conn的个数即为链接数.
将此统计结果写入一权限数据表.
当apache收到一请求时,重定向到一个页面.该页面读取权限数据表中的值.再根据其值作相应的跳转.即可达到你的目的.
至于如何灵活利用,全看管理员对系统的熟悉程度了.
---------------------------------------------------------------
(通过分析apache日志解决问题。——global_boy)