更新:感谢所有给出的答案,但它们都是关于系统负载,而不是 apache。
我的目标是了解,在我的 php 脚本(模板脚本)中,当 apache 负载较高并且最好在 lighttpd 上 fork 一些流量时,这只是为了长轮询并减轻 apache 的负载.
大家好,之后this question我已经开始在我的服务器上使用 lighttpd 进行长轮询服务,以免对 apache 和数据库造成此类请求。
然后,我开始将 lighttpd 也用于静态内容(图像、css、js 等)。
所以,实际上,我有由 apache 提供的 example.com,以及由lighttpd 提供的 polling.example.com,两者都使用 memcache 来减少数据库命中。
在 apache 中,我设置了代理模块来代理所有对 example.com/polling/* 的请求,网址为 polling.example.com/*
现在,我想知道是否有一种方法可以在 php 中检索 apache 服务器负载,以便在 apache 负载较高时重定向 lighttpd 上的其他 ajax 请求。
我的意思是,类似:
<?php
$apache_server_load = /*hot to retrieve this value?*/;
if($apache_server_load >= $my_defined_max_load){
$ajax_domain = '/polling';
}else{
$ajax_domain = '';
}
?>
<script>
[...]
$.ajax({
url: '<?php echo $ajax_domain; ?>/mypage.php',
[...]
});
[...]
</script>
编辑我在 Debian 上运行
p.s:我也想听听这个解决方案是否是一个不错的方法,但这将是另一个问题..如果您愿意,请随时发表评论。
最佳答案
看看mod_status 。设置完成后,您将需要请求并解析
http://example.com/server-status?auto
您可能希望将结果缓存至少几秒钟,而不是对每个传入的请求重新执行相同的请求。
关于php - 使用php监控apache的负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1821008/