Php 当负载大于x时,请使用其他(或修改的)htaccess文件

Php 当负载大于x时,请使用其他(或修改的)htaccess文件,php,apache,.htaccess,mod-rewrite,load,Php,Apache,.htaccess,Mod Rewrite,Load,甚至不确定这是否可行,但如果负载大于x,我想使用不同的htaccess文件 我试图实现的是,当服务器上的负载超过40时,向除我的IP之外的所有用户显示维护页面 如果负载很高,我可以手动包含代码,但这涉及到我a)看到负载很高,b)靠近计算机编辑/FTP修改后的htaccess文件 然后,当负载减少时,通常在进行更改后的30秒内,我必须将其恢复 如果我不能使用不同的htaccess文件,那么根据加载情况签入它 非常感谢。这可能是不可能的,所以我想到的是一个php文件来执行以下操作 如果负载大于20

甚至不确定这是否可行,但如果负载大于x,我想使用不同的htaccess文件

我试图实现的是,当服务器上的负载超过40时,向除我的IP之外的所有用户显示维护页面

如果负载很高,我可以手动包含代码,但这涉及到我a)看到负载很高,b)靠近计算机编辑/FTP修改后的htaccess文件

然后,当负载减少时,通常在进行更改后的30秒内,我必须将其恢复

如果我不能使用不同的htaccess文件,那么根据加载情况签入它


非常感谢。

这可能是不可能的,所以我想到的是一个php文件来执行以下操作

如果负载大于20 mv.htaccess至.htaccess.bak和mv.htaccess.2至.htaccess 设置要加载的标志

如果加载小于10,且标志设置为将mv.htaccess加载到htaccess.2,将mv.htaccess.bak加载到.htaccess,则将标志设置为null

这(理论上)将允许在负载较高时使用备份htaccess文件


问题在于如何将其付诸实践:)

解决方案是在所有页面中添加一些php代码

只需发布此信息,以防将来有人需要:)


//设置变量:
$maxLoad=40//如果负载占用超过2个CPU/核
$time=0//0表示1分钟,1表示5分钟,2表示15分钟。
$avgLoad=sys_getloadavg()//本机PHP函数用于读取Linux服务器的平均负载。
如果($avgLoad[$time]>$maxLoad){
//如果$time内的加载大于$maxLoad中指定的最大CPU数
包括(“maintenance.html”);
模具();
}
然后将所有用户发送到维护页面,直到负载下降

    <php>
//Setup Variable:
$maxLoad = 40; //If the Load is occupying more than 2 cpus/cores
$time = 0; //0 means 1 minute, 1 means 5 minutes, 2 means 15 minutes.
$avgLoad = sys_getloadavg(); //Native PHP function to read Load Average of a Linux Server.

if ($avgLoad[$time] > $maxLoad) {

  //If the Load within $time is greater than the maximum numbers of CPUs specified into $maxLoad
   include ("maintenance.html");
   die();
}

</php>