我正在运行一个托管多个域名的 Ubuntu 10.04 服务器。所有域名都指向同一个 IP 地址并使用同一个网络接口。我实际上只关心主域名,例如my-domain1.com
和my-domain2.com
。它应该包括子域名,例如www.my-domain1.com
的总数my-domain1.com
。是否有可配置的工具来跟踪每个域名的带宽使用情况?
编辑:我不是只寻找网络使用情况。我寻找的是所有流量。
答案1
没有办法监控使用域名的所有服务的流量。您需要为每个域名设置一个 IP 才能做到这一点。您可以监控给定服务的使用情况,具体取决于这些服务是否在保留域名的请求中维护信息。一种这样的服务是执行虚拟托管的 Web 服务器。执行虚拟主机的 Web 服务器需要知道域名才能解析虚拟主机。
答案2
您可以使用服务器日志来确定您提供的带宽量。像 awstats 这样的工具会报告提供的带宽。传入带宽不会报告,但通常比传出带宽少得多。
答案3
简短的回答是:不,你不能这么做。
长话短说,你可以用有限的方式做到这一点。
简短回答:不能,因为 DNS 会将请求解析为 IP 地址,然后客户端将连接到该 IP。一旦 DNS 转换完毕,就无法判断请求的主机名。
长答案:HTTP 1.1 协议需要“host:”标头。即浏览器将其请求的主机名发送到 Web 服务器。这就是 Web 服务器知道要提供哪个网站的方式。这就是虚拟主机能够在同一 IP 地址上工作的方式。因此,从理论上讲,对于 HTTP,您可以计算出每个地址的流量。
其他网络服务可能具有与 HTTP 类似的功能。但是,许多网络服务却没有。因此,这实际上只是部分可能。
有许多工具可以记录 HTTP 流量统计信息和 HTTP 负载。我不确定哪些工具可以为每个网站执行此操作。例如 rrdtool 可能是一个不错的选择