系统相关
首页 > 系统相关> > linux-如何处理apache中共享服务器上的带宽计费?

linux-如何处理apache中共享服务器上的带宽计费?

作者:互联网

您有哪些解决方案来在Apache的共享环境中为虚拟主机处理带宽计费?如果您正在使用日志解析,那么当日志变得非常大时,您的解决方案是否可以很好地扩展?有人为此使用任何模块吗?

解决方法:

对于Apache 1.x和2.x,存在某些模块,这些模块允许您设置最大传输量,其中大多数模块使用Apache生成的记分板文件进行跟踪(当启用ExtendedStatus时启用mod_status时).我一直在寻找的那个书签是mod_curb,但是它还不完整,目前看来只能在整个服务器范围内使用,而不能用于单个虚拟主机.

可以将Apache模块设置为出站过滤器,因此您可以编写一个位于模块末尾的服装模块,并使用APR提供的数据将所有出站数据包加起来,然后将其添加到计数器中该特定域/子域.之后,您可以选择如何处理数据.

对于特定示例,请查看Apache提供的mod_deflate,以了解它如何位于链的末尾并压缩除服务器发送的标头之外的所有内容.这应该给您一个好的开始.

对于基于日志的处理,存在的日志越多,速度就越慢.这只是野兽的本性.当我们使用基于日志的解决方案时,我们有一个自定义的perl脚本,该脚本每15分钟运行一次.最终,将花费超过15分钟的时间来解析,并且由于在运行了多个日志处理Perl脚本一段时间后,我们已经进行了适当的锁定,因此所有这些脚本彼此等待.最后,我们通过对tail -F的简单调用来重新编写它,然后让perl解析传入的每个请求,尽管并不完全有效,但仍然有效.这样做的好处是,我们现在可以近实时地更新流量统计信息,这样,如果客户端超出了限制,则可以更快而不是稍后进行更新.

标签:sysadmin,apache,bandwidth,linux
来源: https://codeday.me/bug/20191210/2104039.html