所以,我经营一个网站,除其他外,还提供一些文件(通常是 PDF)。
所有这些都存储在服务器上的特定目录下:/var/www/vhosts/mysite.com/httpdocs/site/pdf_files
由于我的 VPS 存在存储问题,我正考虑获取一些 S3 或其他云存储,并使用 S3QL/S3FS 将其安装为驱动器。然后,我将能够将 pdf_files 文件夹符号链接到云文件夹,并使用该文件夹提供这些文件,而无需对 Web 应用程序进行任何更改(这是一个好计划吗?)
现在,在这样做之前,为了估算成本,我需要测量人们访问了多少文件,例如每月下载了多少次 pdf 文件。基本上就是通过网络服务器访问了多少次 pdf 文件。
我想在 Apache 级别上执行此操作。最好的方法是什么?
例如:测量特定文件夹中文件使用的带宽也很好,但估计我将对亚马逊发出的 GET 请求更为重要。
答案1
假设您有访问日志,那么快速简便的方法就是执行以下操作:
grep pdf_filename access_log | grep 200
基本上,您解析 pdf 文件的日志文件,然后获取 HTTP 200 代码消息,这意味着用户已成功下载该文件。以下是成功请求的典型日志文件行:
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] “GET /apache_pb.gif HTTP/1.0” 200 2326 “http://www.example.com/start.html“ “Mozilla/4.08 [en] (Win98; I ;Nav)
(密切注意 200 代码和 URL 之间的数值 - 这是已下载文件的大小)。
或者,你可以下载像 Webalizer 这样的日志分析器:
并对其进行配置以跟踪下载pdf的用户数量以及传输速率。