处理 Feed 阅读器流量

处理 Feed 阅读器流量

我管理的域以前有很多 RSS 源,现在几乎全部消失了,但我仍然有大量流量在寻找这些源。我不确定处理这个问题的最佳方法是什么。查看一天的 apache 访问日志,大约 23% 的网站点击量来自源阅读器。

这里的“点击”是指我查看了当天访问日志中的每个条目......这可能不是正确的命名法 - 我不确定。

我为其中大多数提供了 301。这些网站的实际网络流量很小(我假设),但这个点击次数似乎一定有影响。

信息流已经消失此时,这些肯定是僵尸 feed 阅读器。从日志中我可以看出,有多种类型:feedburner 和 feedfetcher 看起来是最常见的。

有什么办法可以解决这个问题吗?

答案1

您可以通过从主 httpd.conf(或适用的包含的配置片段)阻止不存在资源的点击来降低对不存在资源的点击的“成本”。

静止的Redirect和/或RedirectMatch指令在计算上应该比使用动态 mod_rewrite 规则更便宜,尤其是与从文件加载的规则相比.htaccess。(虽然我没有确切的数字此引用建议如此。

作为已经建议HTTP 返回代码410 gone是最合适的。或者,发送404 - file not found状态代码也是合适的,Redirect然后使用该指令可以防止 Web 服务器检查文件系统中是否存在不存在的资源,从而减少负载。

例如:

<VirtualHost *80>
   ServerName example.com
   ServerAlias www.example.com

   # All RSS feeds under /rss/legacy/* are gone

   Redirect gone "/rss/legacy" 

   
   # /rss/[alpha.rss, bravo.rss, ... sierra.rss] are gone, 
   # but /rss/tango.rss still exists

   RedirectMatch gone "/rss/[a-s].*\.rss$" 

   # /rss/victor.rss has also been discontinued

   Redirect 410 "/rss/victor.rss" 
   ...

</VirtualHost>

为了进一步减少不再存在的内容的负载和带宽,您可能需要确保您没有在服务器返回状态“410 - 消失”时发送的友好(自定义)错误文档。即检查您的配置是否不是包括一个ErrorDocument 410设置自定义错误页面,但未设置,ErrorDocument 410 default或者ErrorDocument 410 "Gone"

答案2

如果您确定这些 URL 永远不会包含任何内容,您可以尝试返回410 Gone对这些 URL 的请求。

Mozilla 文档

410 Gone 当请求的内容已从服务器永久删除且无转发地址时,会发送此响应。客户端应删除其缓存和指向资源的链接。HTTP 规范旨在将此状态代码用于“限时促销服务”。API 不应被迫使用此状态代码指示已删除的资源。

但是,无法保证阅读器软件能够正确识别状态代码,并且它们仍可能只是重试加载提要 URL。

然后下一步可以封锁这些 IP 地址。但是,这也可能封锁合法流量,并且供稿软件的 IP 地址可能会发生变化 - 那么您需要更新封锁地址列表。

相关内容