【问题标题】:Tracking requests on a CDN file跟踪 CDN 文件上的请求
【发布时间】:2011-09-13 08:27:04
【问题描述】:

我曾与一家知名托管公司谈过跟踪对 CDN 文件的请求,但他们不提供此服务。

我想要做的是允许用户上传 CSS 文件/纯 CSS,将此文件或原始 CSS 放入 CDN,然后我会给用户一个指向其文件的唯一链接,这样他们就可以执行<link rel="stylesheet" href="http://myCDN.com/uniquelink.css"> 之类的操作,并将文件作为有效的 CSS 输出。这相对简单,但我需要跟踪对文件提出了多少请求以进行收费。如果不让他们先通过 PHP 脚本,我怎么能做到这一点(这违背了为他们提供快速 CDN 链接的目的)?

欢迎任何建议。

【问题讨论】:

    标签: php javascript css cdn


    【解决方案1】:

    如果您排除您控制的中间脚本,那么我相信您唯一的选择是使用读取服务器日志的正常统计信息。这意味着您(或这里的某人可能知道)需要找到一个确实支持跟踪(或您可以访问的网络统计信息)的 CDN 提供商。

    【讨论】:

      【解决方案2】:

      我不得不同意 Blair McMillan 的观点,最好的办法是找到一个可以让您检查访问日志的 CDN。

      虽然这不是一个选项,但您可以尝试 CSS 的 @import 功能。在 CSS 的顶部,添加 @import url("http://host.example.com/path-to-tracking-script.php?id=383");应该会触发对跟踪脚本的请求。 (如果你在那之后显然无法获得 HTTP REFERER。[编辑:因为它总是你的 CSS 文件,而不是加载 css 文件的页面])虽然我不知道这可能会对加载性能产生什么样的影响,但如果您不想更改 CDN,则可能值得测试。

      【讨论】:

      • 这是个好主意,我能否将图像调用附加到我的服务器到嵌入了用户 ID 的 PHP 端点? IE。 .api {背景:url('myAPi.com?uid=12345')}
      • 您必须确保他们在页面上有使用该规则的元素。如果他们不这样做,图像将不会被下载。 (至少使用 Firefox 不会。)我想到的是,您可以设置一个非常通用的规则,然后用用户提供的任何内容覆盖它。在 body 元素的顶部说,但我不确定您是否可以保证不会影响他们的页面样式。 (如果规则被立即覆盖,我们也不能保证一定会下载图像。所有这些行为在很大程度上取决于浏览器。)
      【解决方案3】:

      不要将真实链接提供给用户,而是在您的服务器上创建一个页面来记录请求,然后重定向到真实链接。

      一个例子:

      用户将 css 文件加载到 CDN,CDN 会为您提供链接:

      www.myCDN.com/?id=123
      

      你可以给他一些类似的东西,而不是直接给你的用户这个网址:

      www.mysite.com/track_css.php?url=www.myCDN.com%2F%3Fid%3D123
      

      或者,如果您愿意,您可以将 CDN 链接保存到数据库中并使用 id 识别它,因此 url 类似于

      www.mysite.com/track_css.php?file_id=123
      

      在 track_css.php 中,您可以保存您想要的任何信息(IP、日期、用户代理等),然后重定向到 cdn 中的真实文件...或者检索内容并直接显示它

      希望对你有帮助

      编辑:没有看到 “没有让他们先通过 PHP 脚本”,=P 所以,没关系

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多